Spark Scala 将文本文件读入 DataFrame

Posted

技术标签:

【中文标题】Spark Scala 将文本文件读入 DataFrame【英文标题】:Spark Scala read text file into DataFrame 【发布时间】:2017-05-18 11:08:36 【问题描述】:

我希望读取一个文件并将其存储到 DataFrame 中。 我正在读取一个存储到 RDD[Array[String]] 中的文本文件。

val file = sc.textFile("/mockSmall.txt").map(line => line.split(",").map(_.trim))
case class record(eventName: String, date: String, counter: String)
val solrDF: DataFrame = file.mapcase Array(s0, s1, s2) => record(s0, s1, s2).toDF()

但是,我遇到以下编译问题:

值 DF 不是 RDD[record] 的成员

我该如何解决这个问题? 注意:我使用的是 spark 1.6,因此我没有 sparkSession。

【问题讨论】:

Spark 2.0 Scala - RDD.toDF()的可能重复 @Rumoku 不,不是。请仔细阅读问题。 你错过了:import sqlContext.implicits._ 仔细阅读相关主题。它也适用于 1.6。或者查看文档... 【参考方案1】:

你必须导入spark.implicits._,一切都会好起来的

编辑:

1.6.1 用户请导入sqlContext.implicits._

或者:

使用sqlContext.createDataFrame instead

更多信息请参考官方SQL and DataFrames guidline

【讨论】:

以上是关于Spark Scala 将文本文件读入 DataFrame的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Java 将文本文件作为一个字符串读入 Spark DataFrame

Scala 大文本文件

将决策树训练分类器的模型输出保存为 Spark Scala 平台中的文本文件

如何基于多个空格字符将文本文件拆分为 2 列作为 scala spark 的分隔符

如何将字符串中带有双引号的json文件加载到spark scala中的数据框中

在 Apache Spark (Scala) 上获取两个数据帧的差异