Spark Dataframe产生错误的CSV输出

时间:2019-07-22 19:04:46

标签: apache-spark pyspark apache-spark-sql

我正在从s3存储桶中读取一些CSV,并向其中的每一个添加一个动态列(基于输入目录文件路径上应用的正则表达式),在这种情况下,其编号为243。

但是,输出CSV的内部只有一列-文件名,并且值 243 成功地出现在整列的每一行中。对于所有其他字段,标题均按照提供的模式显示在CSV中,但其所有行均为空!

df=spark.read.csv("s3a://exportcsv-battery/S5/243/101*",sep=',',header=True,schema=schema)
df = df.withColumn('filename', f.split(f.input_file_name(), '/')[4])
df.coalesce(1).write.format("csv").save('s3a://output-1hz-mat/1hzORC.csv',header='True')

我希望所有字段在输出CSV中吐出它们的值。有什么想法吗?

注意:inferSchema = True有效,但是将所有内容生成为字符串,但是当我添加自己的模式时,我只会得到一列:输出csv文件中的filename。 df.show产生正确的输出,我可以在其中获得所有字段及其新的数据类型。

0 个答案:

没有答案