我正在尝试采用硬编码的String并将其转换为1行Spark DataFrame(具有类型为StringType
的单列),以便:
String fizz = "buzz"
将使用其
.show()
方法如下所示的DataFrame生成结果:+-----+
| fizz|
+-----+
| buzz|
+-----+
到目前为止,我最大的尝试是:
val rawData = List("fizz")
val df = sqlContext.sparkContext.parallelize(Seq(rawData)).toDF()
df.show()
但是我收到以下编译器错误:
java.lang.ClassCastException: org.apache.spark.sql.types.ArrayType cannot be cast to org.apache.spark.sql.types.StructType
at org.apache.spark.sql.SQLContext.createDataFrame(SQLContext.scala:413)
at org.apache.spark.sql.SQLImplicits.rddToDataFrameHolder(SQLImplicits.scala:155)
关于我要去哪里的任何想法?另外,如何将
"buzz"
设置为fizz
列的行值?更新:
试:
sqlContext.sparkContext.parallelize(rawData).toDF()
我得到的DF看起来像:
+----+
| _1|
+----+
|buzz|
+----+
最佳答案
尝试:
sqlContext.sparkContext.parallelize(rawData).toDF()
在2.0中,您可以:
import spark.implicits._
rawData.toDF
(可选)提供
toDF
的名称序列:sqlContext.sparkContext.parallelize(rawData).toDF("fizz")