我正在尝试在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而不是空字符串。
答案 0 :(得分:3)
我认为您想要的语法是:
select cast(null as string) as newcol from db.table
表达式为cast(null as string)
-这只是任何旧表达式,可能会更加复杂。列别名是使用as newcol
提供的,它位于表达式之后。
巧合的是,as
在newcol
的定义中被两次使用(用于不同的事物)。