将tableresultset转换为Dataframe

e5nqia27  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(482)

我将查询的输出作为tableresultset。这里,result是我的tableresultset,我想将其更改为dataframe。正在寻找一种不在Dataframe上使用联合的方法,因为如果在行上应用,它会减慢进程。请找到第二种方法,我尝试后工会。

val keys2 = scala.collection.mutable.ListBuffer.empty[ListBuffer[String]]   
     for (s <- result.getSchema.getFields) {
            keys.add(s.getName)
          }
          for (f <- result.iterateAll()) {
            val keys1 = scala.collection.mutable.ListBuffer.empty[String]
            println("Result entered ")
            for (column <- keys) {
              //Final += (column -> f.get(column).getValue().toString)
              keys1 += f.get(column).getValue().toString

              println("Final part is over for", column)
              //println(keys1.toSeq)
            }
            println(keys1)
            keys2 += keys1
          }
          println(keys2)
          val rdd_new = sc.parallelize(keys2)
          import Spark.implicits._

          val res = rdd_new.toDF("col1","col2")
          res.show()

我得到我的钥匙2如下-

ListBuffer(ListBuffer(1234, ABC), ListBuffer(567, BV), ListBuffer(789, SLA))

输出我得到的Dataframe-

+------------+
|   Value    |
+------------+
|[1234, ABC] |
| [567, BV]  |
|[789, SLA]  |

输出我想要的Dataframe-

+------------+
|  _1 | _2   |
+------------+
| 1234| ABC  |
|  567| BV   |
| 789 |SLA   |

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题