Shi*_*ani 2 scala apache-spark spark-dataframe
当我在 spark-shell 上运行以下命令时,我得到一个数据框:
scala> val df = Seq(Array(1,2)).toDF("a")
scala> df.show(false)
+------+
|a |
+------+
|[1, 2]|
+------+
Run Code Online (Sandbox Code Playgroud)
但是当我运行以下命令来创建一个包含两列的数据框时:
scala> val df1 = Seq(Seq(Array(1,2)),"jf").toDF("a","b")
<console>:23: error: value toDF is not a member of Seq[Object]
val df1 = Seq(Seq(Array(1,2)),"jf").toDF("a","b")
Run Code Online (Sandbox Code Playgroud)
我收到错误:
值 toDF 不是 Seq[Object] 的成员。
我该怎么做?toDF 是否仅支持具有原始数据类型的序列?
你需要Seq的Tuple的toDF方法工作:
val df1 = Seq((Array(1,2),"jf")).toDF("a","b")
// df1: org.apache.spark.sql.DataFrame = [a: array<int>, b: string]
df1.show
+------+---+
| a| b|
+------+---+
|[1, 2]| jf|
+------+---+
Run Code Online (Sandbox Code Playgroud)
为更多行添加更多元组:
val df1 = Seq((Array(1,2),"jf"), (Array(2), "ab")).toDF("a","b")
// df1: org.apache.spark.sql.DataFrame = [a: array<int>, b: string]
df1.show
+------+---+
| a| b|
+------+---+
|[1, 2]| jf|
| [2]| ab|
+------+---+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8512 次 |
| 最近记录: |