Python Spark-如何将空数据框输出到CSV文件(仅输出标头)



我想将空数据帧输出到CSV文件。我使用这些代码:

df.repartition(1).write.csv(path, sep='t', header=True)

但是由于数据框中没有数据,因此Spark不会输出CSV文件的标题。然后,我将代码修改为:

if df.count() == 0:
    empty_data = [f.name for f in df.schema.fields]
    df = ss.createDataFrame([empty_data], df.schema)
    df.repartition(1).write.csv(path, sep='t')
else:
    df.repartition(1).write.csv(path, sep='t', header=True)

它有效,但是我想询问如果没有计数功能,是否有更好的方法。

df.count() == 0将使您的驱动程序程序在执行者中检索所有数据帧分区的计数。

在您的情况下,我将使用df.take(1).isEmpty(Spark> = 2.1)。仍然很慢,但比RAW count()更可取。

仅标头:

cols = 't'.join(df.columns)
with open('./cols.csv', 'w') as f:
    f.write(cols)

相关内容

  • 没有找到相关文章

最新更新