Apache spark Spark SQL:结果文件中将空值转换为空字符串

Apache spark Spark SQL:结果文件中将空值转换为空字符串,apache-spark,pyspark,apache-spark-sql,aws-glue,Apache Spark,Pyspark,Apache Spark Sql,Aws Glue,我已经用AWS Glue编写了一个脚本,用于从AWS S3读取CSV文件,对几个字段应用null检查,并将结果作为新文件存储回S3。问题是当它遇到字符串类型的字段时,如果值为null,它将转换为空字符串。但我不希望这种转变发生。对于所有其他数据类型,它工作正常 以下是迄今为止编写的脚本: glueContext = GlueContext(SparkContext.getOrCreate()) spark = glueContext.spark_session # s3 output dire

我已经用AWS Glue编写了一个脚本,用于从AWS S3读取CSV文件,对几个字段应用null检查,并将结果作为新文件存储回S3。问题是当它遇到字符串类型的字段时,如果值为null,它将转换为空字符串。但我不希望这种转变发生。对于所有其他数据类型,它工作正常

以下是迄今为止编写的脚本:

glueContext = GlueContext(SparkContext.getOrCreate())
spark = glueContext.spark_session

# s3 output directory
output_dir = "s3://aws-glue-scripts/..."

# Data Catalog: database and table name
db_name = "sampledb"
tbl_name = "mytable"

datasource = glueContext.create_dynamic_frame.from_catalog(database = db_name, table_name = tbl_name)

datasource_df = datasource.toDF()   
datasource_df.createOrReplaceTempView("myNewTable")
datasource_sql_df = spark.sql("SELECT * FROM myNewTable WHERE name IS NULL")
datasource_sql_df.show()

datasource_sql_dyf = DynamicFrame.fromDF(datasource_sql_df, glueContext, "datasource_sql_dyf")
glueContext.write_dynamic_frame.from_options(frame = datasource_sql_dyf, 
connection_type = "s3", connection_options = {"path": output_dir}, format = "json")
有谁能提出解决这个问题的建议吗


谢谢。

我认为目前不可能。Spark配置为在写入JSON时忽略空值。在csv阅读器中,它显式地将空值设置为空