我正在尝试采用硬编码的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")

10-08 19:29