【问题标题】:Typecasting a Dataframe returns 'null' for empty fields类型转换 Dataframe 为空字段返回“null”
【发布时间】:2018-11-09 13:44:07
【问题描述】:
我有一个原始数据加载到我的配置单元表中,默认情况下所有列都是字符串。现在我需要更改配置单元表的数据类型以导出到 SQLServer。
当对 hive 列进行类型转换时,空字段返回“NULL”,尝试将 hive 表加载到数据框中并对列进行类型转换,但数据框仍然为空字段返回“null”。 SQLserver 无法识别此类值。
当我从配置单元或数据框获取数据时,任何人都可以提出一个解决方案来避免显示“空”值。
【问题讨论】:
标签:
scala
dataframe
hive
null
apache-spark-sql
【解决方案1】:
如果您只想更改数据类型,因为您想在导出的数据中使用该特定格式,请考虑根据您的要求使用写入目录,然后使用 sqoop/任何其他工具导出。
INSERT OVERWRITE DIRECTORY '<HDFS path>'
Row format delimited
Fields terminated by '<delimiter>'
SELECT
a,
b
From
table_name
Where <condition>;
导出时,如果您有空值,请考虑在您的 sqoop 命令中使用这些参数
--null-string "\\N" --null-non-string "\\N"
希望对你有帮助