当前位置: 首页 > 知识库问答 >
问题:

Spark 2.0 Scala - RDD.toDF()

闾丘淇
2023-03-14

我正在使用Spark 2.0 Scala。我能够使用toDF()方法将RDD转换为DataFrame。

val rdd = sc.textFile("/pathtologfile/logfile.txt")
val df = rdd.toDF()

但是对于我来说,我在API文档中找不到这一点。它不属于RDD。但它在数据集下(链接1)。然而,我有一个RDD,而不是数据集。

我也看不到它在隐式下(链接2)。

所以请帮助我理解为什么可以为我的RDD调用toDF()。此方法从哪里继承?

共有3个答案

符学
2023-03-14

是的,我终于找到了这个问题。这让我像地狱一样困扰着我,这篇文章是救命稻草。我试图将数据从日志文件加载到案例类对象,使其可变列表,这个想法是最终将列表转换为 DF。然而,由于它是可变的,并且 Spark 2.1.1 改变了 toDF 实现,为什么列表不想被转换。我终于想到了甚至涵盖将数据保存到文件并使用 .read 将其加载回来。然而,5分钟前,这篇文章挽救了我的一天。

我做了与描述完全相同的方式。

将数据加载到可变列表后,我立即使用

import spark.sqlContext.implicits._
val df = <mutable list object>.toDF 
df.show()
法兴德
2023-03-14

是的,您应该像这样导入sqlContext隐含:

val sqlContext = //create sqlContext

import sqlContext.implicits._

val df = RDD.toDF()

在RDD中调用“toDF”之前

郑鸿朗
2023-03-14

它来自这里:

火花2 API

说明:如果导入sqlContext.implicits._,则有一个隐式方法将RDD转换为DataSetHolder(rddToDataSetHolder),然后在DataSetHolder调用toDF

 类似资料:

相关问答

相关文章

相关阅读