嗨,我有一个项目,使用hdfs,Hive,Spark技术。当我导入数据时,对于数字字段,如果数据不存在,它将被替换为null。但对于字符串,它将被空字符串“”替换。为了解决这个问题,我在配置单元中创建表时使用了这一行。
TBLPROPERTIES('serialization.null.format'='');
但当我将其转换为sparkDataframe时,空字符串仍然表示为“”而不是null原因是什么。。?配置单元中的某些属性是否不支持spark。。?
1tuwyuhd1#
@马努,请将此作为将问题转换为sparkDataframe的摘要:
## Create a sample DataFrame testDF = sqlContext.createDataFrame([Row(col1='foo', col2=1), Row(col1='', col2=2), Row(col1=None, col2='')])
def blank_if_null(z): return when(col(z) != "", col(z)).otherwise(None) dfWithEmptyReplaced = testDF.withColumn("col1", blank_as_null("col1"))
1条答案
按热度按时间1tuwyuhd1#
@马努,
请将此作为将问题转换为sparkDataframe的摘要:
这些函数将根据您的请求将所有空字符串转换为null