在 hadoop和 spark 中将字符串替换为 null " "



嗨,我有一个使用HDF,Hive,Spark Technologies的项目。当我导入数据时,对于数字字段,如果不存在数据,则将用null替换。但是对于字符串,它将被空字符串替换。为了解决此问题,我在蜂巢中创建表时使用了此行。

TBLPROPERTIES('serialization.null.format'='');

,但是当我将其转换为火花数据框架时,空字符串表示为"而不是null

原因是什么?Hive中的某些属性不支持Spark ..?

@manu,

请将其用作转换问题到火花数据帧的摘要:

## Create a sample DataFrame
testDF = sqlContext.createDataFrame([Row(col1='foo', col2=1), Row(col1='', col2=2), Row(col1=None, col2='')])

这些功能将按照您的要求将所有空字符串转换为null

 def blank_if_null(z):
        return when(col(z) != "", col(z)).otherwise(None)
dfWithEmptyReplaced = testDF.withColumn("col1", blank_as_null("col1"))

相关内容

  • 没有找到相关文章

最新更新