我是spark scala的新手。在这里,我正在尝试创建一个数据帧,但我遇到了一个问题
val date= "01-01-2012"
val rdd = sc.parallelize(date)
val df= rdd.toDF("date") // error value toDF is not a member of org.apache.spark.rdd.rdd
如何做到这一点,任何人都可以告诉该错误的原因是什么
答案 0 :(得分:0)
为了能够访问toDF()方法,您需要导入sqlContext.implicits_,其中sqlContext是org.apache.spark.sql.SQLContext的实例
可能使用单个值,toDF()方法可能无法与默认架构关联以创建DataFrame或数据集。你可能想尝试这种方式
import sqlContext.implicits._
val date= "01-01-2012"
var rdd = sc.parallelize(Seq(date))
var df = rdd.toDF()
df.show
希望这会有所帮助..
答案 1 :(得分:0)
要使用toDF方法,您需要导入import sqlContext.implicits._
或者如果您正在使用Spark Session
val spark =SparkSession.builder().master("local").appName("test").getOrCreate()
import spark.implicits._
parallelize()
方法需要Seq
,List
或Array
转换为其中的一行。
因此,传递单个值并不会产生任何意义
你可以做一个简单的例子
val date = Seq("01-01-2012", "01-01-2013", "01-01-2014")
val rdd = sc.parallelize(date).toDF("date")
我希望它有所帮助