sme*_*eeb 5 scala apache-spark spark-dataframe
我正在尝试使用硬编码的String并将其转换为1行Spark DataFrame(具有单列类型StringType),以便:
String fizz = "buzz"
Run Code Online (Sandbox Code Playgroud)
将导致DataFrame的.show()方法如下所示:
+-----+
| fizz|
+-----+
| buzz|
+-----+
Run Code Online (Sandbox Code Playgroud)
到目前为止,我最好的尝试是:
val rawData = List("fizz")
val df = sqlContext.sparkContext.parallelize(Seq(rawData)).toDF()
df.show()
Run Code Online (Sandbox Code Playgroud)
但是我得到以下编译器错误:
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)
Run Code Online (Sandbox Code Playgroud)
关于我哪里出错的想法?另外,如何设置"buzz"列的行值fizz?
试:
sqlContext.sparkContext.parallelize(rawData).toDF()
Run Code Online (Sandbox Code Playgroud)
我得到一个DF看起来像:
+----+
| _1|
+----+
|buzz|
+----+
Run Code Online (Sandbox Code Playgroud)
小智 6
尝试:
sqlContext.sparkContext.parallelize(rawData).toDF()
Run Code Online (Sandbox Code Playgroud)
在2.0中你可以:
import spark.implicits._
rawData.toDF
Run Code Online (Sandbox Code Playgroud)
可选择提供一系列名称toDF:
sqlContext.sparkContext.parallelize(rawData).toDF("fizz")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12695 次 |
| 最近记录: |