如何为spark scala中的单个列创建RDD

时间:2017-05-22 08:52:23

标签: spark-dataframe

我是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

如何做到这一点,任何人都可以告诉该错误的原因是什么

2 个答案:

答案 0 :(得分:0)

  1. 为了能够访问toDF()方法,您需要导入sqlContext.implicits_,其中sqlContext是org.apache.spark.sql.SQLContext的实例

  2. 可能使用单个值,toDF()方法可能无法与默认架构关联以创建DataFrame或数据集。你可能想尝试这种方式

    import sqlContext.implicits._ val date= "01-01-2012" var rdd = sc.parallelize(Seq(date)) var df = rdd.toDF() df.show

  3. 希望这会有所帮助..

答案 1 :(得分:0)

要使用toDF方法,您需要导入import sqlContext.implicits._ 或者如果您正在使用Spark Session

  val spark =SparkSession.builder().master("local").appName("test").getOrCreate()
  import spark.implicits._

parallelize()方法需要SeqListArray转换为其中的一行。 因此,传递单个值并不会产生任何意义 你可以做一个简单的例子

val date = Seq("01-01-2012", "01-01-2013", "01-01-2014")
val rdd = sc.parallelize(date).toDF("date")

我希望它有所帮助