【发布时间】:2018-09-29 18:17:45
【问题描述】:
我想要一个文本文件格式:
first line
column1;column2;column3
column1;column2;column3
last line
将其转换为没有第一行和最后一行的DataFrame 我跳过了第一行和最后一行,但随后我成为一行和一列中的其余文本 如何排列行? 我的 DataFrame 也有一个架构
var textFile = sc.textFile("*.txt")
val header = textFile.first()
val total = textFile.count()
var rows = textFile.zipWithIndex().filter(x => x._2 < total - 1).map(x => x._1).filter(x => x != header)
val schema = StructType(Array(
StructField("col1", IntegerType, true),
StructField("col2", StringType, true),
StructField("col3", StringType, true),
StructField("col4", StringType, true)
))
【问题讨论】:
-
你应该用 ; 分割其余的文本。然后将它们转换为行并应用架构来创建数据框
-
是的,我已经做到了:import spark.implicits._ val rowss = rows.map(x => {val m = x.split(","); Row(m(0) , m(1), m(2), m(3))}) val df = rowss.toDF().show() 但 toDF() 不起作用..
-
您的数据包含 ;而不是,
-
与 ;仍然无法正常工作我也尝试使用 spark.createDataFrame(rowRDD, schema),但我变成了很多错误
标签: scala apache-spark dataframe text rows