嗨,我有一个使用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"))