【发布时间】:2020-07-30 17:51:48
【问题描述】:
我正在尝试使用 spark scala shell 在 aws s3 中读取 .dat 文件,并使用 .dat 文件的第一条记录创建一个新文件。
假设我的 .dat 文件的文件路径是“s3a://filepath.dat”
我认为我的逻辑应该类似于但我无法弄清楚如何获得第一条记录。
val file = sc.textFile("s3a://filepath.dat")
val onerecord = file.getFirstRecord()
onerecord.saveAsTextFile("s3a://newfilepath.dat")
我一直在尝试遵循这些解决方案
How to skip first and last line from a dat file and make it to dataframe using scala in databricks
【问题讨论】:
-
可以使用 RDD 函数“zipWithIndex()”,过滤 index==1,或者函数“first()”,并为这个值创建新的 RDD。
-
谢谢。我能够使用
spark.read.format("csv").option("header", true).option("delimiter", "|").load("s3a://filepath.dat"),然后是res4.limit(1),最后是res5.rdd.coalesce(1, shuffle = true).saveAsTextFile("./newfile.dat")但是这似乎创建了一个名为 newfile.dat 的目录,而不是一个 .dat 类型的文件
标签: scala apache-spark