我正在从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产生正确的输出,我可以在其中获得所有字段及其新的数据类型。