【发布时间】:2019-03-17 19:46:26
【问题描述】:
我有一张如下表:
user_id email
u1 e1, e2
u2 null
我的目标是将其转换为以下格式:
user_id email
u1 e1
u1 e2
u2 null
HIVE sql: select * FROM table LATERAL VIEW explode(split(email,',')) email AS email_id
当在 hive 中执行上述查询时,我得到了空值,但是当在 spark-sql 中运行同样的查询时,我没有得到空值,这个问题和场景已经讨论过here
火花sql:
select * FROM table LATERAL VIEW OUTER explode ( split ( email ,',' ) ) email AS email_id;select * from table lateral view POSEXPLODE_OUTER(split(email,',')) email as email_id <br>
第二个是语法问题失败,我尝试使用posexplode_outer搜索横向视图但没有得到太多结果,我想在spark-sql中引入空值。
【问题讨论】:
-
spark sql中的第一个查询有什么问题?第二个函数
posexplode_outer无效。 -
@VamsiPrabhala:即使在运行第一个查询后,我也无法在结果中看到 NULL,“SELECT POSXPLODE_OUTER(array(10,20)) AS (POS,SO);”这在 spark-sql 中运行
-
@sramalingam24:是的,我之前已经检查过了,但它是 wrt 数据帧,我需要在 spark-sql 查询中实现
-
您在 spark SQL 中编写的所有内容都可用作数据框函数,因此从一个到另一个只是语义
标签: apache-spark hive apache-spark-sql hiveql