我试图在 spark 中生成一列空值,但不是空数据类型。
所以
sqlContext.sql("select null as newcol from db.table")
将不起作用,因为它将 newcol 数据类型设置为空。
sqlContext.sql("select cast(null as newcol as string) from db.table")
将不起作用,因为它将所有值都设为“null”作为 4 字符的字符串表示形式。
我怎样才能做到这一点?
最终目标是将其写入 csv,它不支持空列类型,我需要数据框中的实际值为空而不是空字符串。
最佳答案
我想你想要的语法是:
select cast(null as string) as newcol from db.table
表达式是 cast(null as string)
-- 这只是任何旧表达式,可能会复杂得多。列别名是使用 as newcol
提供的,它位于表达式之后。
在 newcol
的定义中 as
被 begin 两次使用(用于不同的事物)只是巧合。
关于sql - 在 spark 中选择新列作为空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52996126/