gpt4 book ai didi

scala - 如何从Spark中的文本文件创建DataFrame

转载 作者:行者123 更新时间:2023-12-03 15:18:10 25 4
gpt4 key购买 nike

我在HDFS上有一个文本文件,我想将其转换为Spark中的数据框。

我正在使用Spark上下文加载文件,然后尝试从该文件生成单独的列。

val myFile = sc.textFile("file.txt")
val myFile1 = myFile.map(x=>x.split(";"))

完成此操作后,我正在尝试以下操作。
myFile1.toDF()

我遇到了一个问题,因为myFile1 RDD中的元素现在是数组类型。

我该如何解决这个问题?

最佳答案

更新-从 Spark 1.6 开始,您可以简单地使用内置的csv数据源:

spark: SparkSession = // create the Spark Session
val df = spark.read.csv("file.txt")

您还可以使用各种选项来控制CSV解析,例如:
val df = spark.read.option("header", "false").csv("file.txt")

对于Spark版本<1.6 :
最简单的方法是使用 spark-csv-将其包含在依赖项中并遵循README,它允许设置自定义定界符( ;),可以读取CSV header (如果有),并且可以推断模式类型(以成本为准)额外扫描数据)。

另外,如果您知道该架构,则可以创建一个表示它的案例类,并将RDD元素映射到该类的实例中,然后再转换为DataFrame,例如:
case class Record(id: Int, name: String)

val myFile1 = myFile.map(x=>x.split(";")).map {
case Array(id, name) => Record(id.toInt, name)
}

myFile1.toDF() // DataFrame will have columns "id" and "name"

关于scala - 如何从Spark中的文本文件创建DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36766322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com