除了上面的答案,下面 solution fits good 对于文件 multiple header 以及 footer 线路:-
val data_delimiter = "|"
val skipHeaderLines = 5
val skipHeaderLines = 3
//-- Read file into Dataframe and convert to RDD
val dataframe = spark.read.option("wholeFile", true).option("delimiter",data_delimiter).csv(s"hdfs://$in_data_file")
val rdd = dataframe.rdd
//-- RDD without header and footer
val dfRdd = rdd.zipWithIndex().filter({case (line, index) => index != (cnt - skipFooterLines) && index > (skipHeaderLines - 1)}).map({case (line, index) => line})
//-- Dataframe without header and footer
val df = spark.createDataFrame(dfRdd, dataframe.schema)
4条答案
按热度按时间vx6bjr1n1#
假设你的文本文件有json的页眉和页脚,spark sql方式,
样本数据
这里可以通过以下3行避免标题(假设数据中没有tilda),
现在输出看起来像,
希望有帮助。
yi0zb3m42#
样本数据:
处理逻辑:
输出为:
希望这有帮助!
3okqufwl3#
除了上面的答案,下面
solution fits good
对于文件multiple
header
以及footer
线路:-希望这有帮助。
k4aesqcs4#
假设文件不是那么大,我们可以使用collect以迭代器的形式获取Dataframe,并访问最后一个元素,如下所示:
避免使用
collect
在大型数据集上。或
我们可以用take把最后一排剪掉。