我有一个包含18行记录的dataFrame,这个dataFrame有20多列。 例如:
----------- My list: ('N','N')
A B C
-----------
a b c
d e f
我还有一个包含18个值的列表。现在我想将此列表添加到我的dataFrame中,列表中的每个值都对应一行的值。
这意味着最终结果应该是这样的:
--------------
A B C D
--------------
a b c N
d e f N
以下是我尝试的内容(来自this link):
//C is a list of values
val rdd = sc.parallelize(C)
//joindf is my dataframe has 20+ columns
val rdd_new = joindf.rdd.zip(rdd).map(r => Row.fromSeq(r._1.toSeq ++ Seq(r._2)))
sqlContext.createDataFrame(rdd_new,joindf.schema.add("CD",StringType)).show
这给我这样的错误:Can't zip RDDs with unequal numbers of partitions: List(200,2)
任何帮助将不胜感激!
更新
不确定为什么分区或zip不能解决问题,但注释提供了另一种方法。我只是从this link
复制方法