后来编辑2:我发现问题,我通常应该删除这个问题,因为我犯的错误与我所要求的无关,问题的根源在其他地方。 虽然有一些知识宝库,但是除非社区决定放弃它,否则我会放弃它。编辑:所以,不知道为什么这并没有提前给我,解决方案是使用dataframe.na.drop(“所有”)摆脱所有的空行。我仍然想知道他们为什么会出现。其他过滤器不会创建这些空行。将Spark数据帧保存为csv有空行
我找不到任何答案或提示为什么会发生这种情况。我怀疑过滤器是罪魁祸首,但不知道如果是这样,为什么以及如何解决它。
我定义了一个数据帧为一过滤另一个数据帧基于若干conditions.Then我将其保存为CSV:
var dataframe = dataframe_raw.filter($"column1" !== $"column2" || $"column3"!==$"column4").drop($"column2").drop($"column4")
dataframe.write.mode("overwrite").option("header","true").csv("hdfs:///path/to/file/")
的问题是,在输出“份”文件(一个或多个)包含空行。任何ideea为什么以及如何删除它们?
谢谢。
注意:也尝试coalesce(1),它只帮助保存一个文件,但也包含空行。
列1和列3是否在源('dataframe_raw')中为空?这可以解释它 –
比较你使用'dataframe.show'写的数据框。看看差异在哪里,是否有缺失行的特定模式。用您的发现更新问题。 – philantrovert
第1列和第3列不是空的。我不确定为什么我会得到完全空行,如果它们是(DF中还有其他列不是空的),你能描述一下吗? – UrVal