Scala 正在尝试创建具有两列[Seq(),String]-Spark的数据帧
当我在spark shell上运行以下操作时,会得到一个数据帧:Scala 正在尝试创建具有两列[Seq(),String]-Spark的数据帧,scala,apache-spark,spark-dataframe,Scala,Apache Spark,Spark Dataframe,当我在spark shell上运行以下操作时,会得到一个数据帧: scala> val df = Seq(Array(1,2)).toDF("a") scala> df.show(false) +------+ |a | +------+ |[1, 2]| +------+ 但当我运行以下命令来创建包含两列的数据帧时: scala> val df1 = Seq(Seq(Array(1,2)),"jf").toDF("a","b") <console>:2
scala> val df = Seq(Array(1,2)).toDF("a")
scala> df.show(false)
+------+
|a |
+------+
|[1, 2]|
+------+
但当我运行以下命令来创建包含两列的数据帧时:
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")
scala>valdf1=Seq(Seq(Array(1,2)),“jf”).toDF(“a”,“b”)
:23:错误:值toDF不是Seq[Object]的成员
val df1=Seq(Seq(Array(1,2)),“jf”)。toDF(“a”,“b”)
我得到一个错误:
值toDF不是Seq[Object]的成员
我该怎么办?toDF是否仅支持具有基本数据类型的序列 要使
toDF
方法工作,您需要Seq
的Tuple
:
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|
+------+---+
valdf1=Seq((数组(1,2),“jf”).toDF(“a”,“b”)
//df1:org.apache.spark.sql.DataFrame=[a:array,b:string]
df1.show
+------+---+
|a | b|
+------+---+
|[1,2]| jf|
+------+---+
为更多行添加更多元组:
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|
+------+---+
val df1=Seq((数组(1,2),“jf”),(数组(2),“ab”).toDF(“a”,“b”)
//df1:org.apache.spark.sql.DataFrame=[a:array,b:string]
df1.show
+------+---+
|a | b|
+------+---+
|[1,2]| jf|
|[2]| ab|
+------+---+
谢谢你的帮助!所以当我创建一个序列(数组[Int],字符串)时,我错了,一个元组支持不同的类型,一个序列不支持,如果我是正确的,我得到了相同的错误。“value toDF不是Seq[Array[String]]的成员”有什么建议吗?延迟回复,但导入spark.implicits.\uucode>