gpt4 book ai didi

apache-spark - Spark : Convert a textfile to Dataframe using case class

转载 作者:行者123 更新时间:2023-12-02 17:10:47 25 4
gpt4 key购买 nike

我想使用案例类将文本文件转换为数据帧,下面是我的代码。它一直工作到 map 拆分,在那里我可以使用 rdd_metadata_schema.take(1).foreach(arr => print(arr.toList)) 查看值,但是当我检查数据帧时它是空的。

case class metadata_schema(
field_name:String,
field_pos:String,
field_dataType:String
)
val rdd_metadata = Spark.sparkSession.sparkContext.textFile("textfile")
val rdd_metadata_schema = rdd_metadata.map(row => row.split('|')).map(field => metadata_schema(field(0), field(1), field(2)))
val df_metadata = Spark.sparkSession.createDataFrame(rdd_metadata_schema,classOf[metadata_schema])

**textfile:**
field1|1-2|String
field2|3|String

我觉得一切都很好。我只想使用案例类创建 df,因为另一种方法对我有用。这是为了刷新我的技能。

最佳答案

这就是你的做法

  case class metadata_schema(
field_name:String,
field_pos:String,
field_dataType:String
)

确保案例类在对象之外。

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

import spark.implicits._

val rdd_metadata = spark.sparkContext.textFile("file path")
val rdd_metadata_schema = rdd_metadata.map(row => row.split('|')).map(field => metadata_schema(field(0), field(1), field(2)))

//you don't need to create using createDataFrame() just toDF is sufficient

rdd_metadata_schema.toDF().show()

输出:

+----------+---------+--------------+
|field_name|field_pos|field_dataType|
+----------+---------+--------------+
| field1| 1-2| String|
| field2| 3| String|
+----------+---------+--------------+

关于apache-spark - Spark : Convert a textfile to Dataframe using case class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49387684/

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