在火花中选择新列作为空字符串

时间:2018-10-25 18:44:52

标签: sql apache-spark hiveql

我正在尝试在spark中生成一列null值,但不是null数据类型。

所以

sqlContext.sql("select null as newcol from db.table")

将不起作用,因为它将将newcol数据类型设置为null。

sqlContext.sql("select cast(null as newcol as string) from db.table")

将不起作用,因为它将使所有值都为4字符串表示形式为“ null”。

我该怎么做?

最终目标是将其写入到不支持null列类型的csv中,我需要数据框中的实际值是null而不是空字符串。

1 个答案:

答案 0 :(得分:3)

我认为您想要的语法是:

select cast(null as string) as newcol from db.table

表达式为cast(null as string) -这只是任何旧表达式,可能会更加复杂。列别名是使用as newcol提供的,它位于表达式之后。

巧合的是,asnewcol的定义中被两次使用(用于不同的事物)。