sql - 在 spark 中选择新列作为空字符串

标签 sql apache-spark hiveql

我试图在 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/

相关文章:

python - Pyspark-当从已经具有(错误)模式的Parquet文件读取时,如何强制spark再次推断模式?

apache-spark - 如何限制 Spark 作业失败的重试次数?

date - HIVE 在最近的日期左连接

scala - 如何将列转换为向量类型?

hive - 在Hive中, 'positive'函数有什么作用?

hadoop - 在Hive中使用 “Collect_List()”函数时出错

javascript - 我们可以从 WebService 调用 javascript 函数吗?

sql - PL SQL 将结果集映射到多条记录

mysql - 插入触发器之前的 SQL

java - JPA 命名查询显示错误