此问题与this有关。
我正在Spark中处理包含csv.gz文件的S3文件夹。每个csv.gz文件都有一个包含列名的标头。这已通过上述SO链接解决,解决方案如下所示:
val rdd = sc.textFile("s3://.../my-s3-path").mapPartitions(_.drop(1))
现在的问题是看起来有些文件最后有换行符(' \ n')(我们假设我们不确定哪个文件)。因此,在将RDD转换为DataFrame时,我收到了一些错误。现在的问题是:
如果每个文件的最后一行是' \ n'?
答案 0 :(得分:5)
为什么不是一个简单的过滤器:
val rdd = sc.textFile("s3...").filter(line => !line.equalsIgnoreCase("\n")).mapPartition...
或过滤任何空行:
val rdd = sc.textFile("s3...").filter(line => !line.trim().isEmpty)...