spark-sql子查询的字段名在父查询中无法解析

更新时间:2023-08-03 13:14:06 阅读: 评论:0

spark-sql⼦查询的字段名在⽗查询中⽆法解析
场景:多表join、union时,发⽣如下报错:武汉风俗
通过分别注释各部分代码后再运⾏,将问题定位到以下代码段:千年的爱恋
...
...
(
SELECT
der_id
,comp_sku.quantity
,comp_sku.sales_price
,comp_sku.promotion_sku_code半衰期是什么意思
,der_id
FROM
(
SELECT
order_id
,promotion_sku_code
,
quantity
,sales_price
f11键的作用FROM all_detail
WHERE is_gift = 1 AND promotion_sku_code IS NOT NULL
高等职业院校) comp_sku
LEFT JOIN
(
SELECT
order_id
,sku_code
FROM sales
)
sales_tmp
ON der_id = der_id AND comp_sku.promotion_sku_code = sales_tmp.sku_code
)
...
...
根据报错,猜测:以上代码作为⼦查询,将结果供⽗查询时, ⽗查询没有解析到⼦查询结果中的字段。
联想到曾经在hive官⽹上看到,在join或者union时,必须指定字段别名,否则会丢失数据。
猜测代码中的 der_id等字段在结果中应该成为了column1之类默认的字段名,所以⽗查询中查找order_id就查找不到。于是将代码修改为:
...
.
..
(
孙思邈名言
SELECT
der_id AS order_id
,comp_sku.quantity AS quantity
,comp_sku.sales_price AS sales_price
,comp_sku.promotion_sku_code AS promotion_sku_code
,der_id AS s_order_id
FROM
(
SELECT
order_id
,promotion_sku_code
雪山胃宝胶囊
,quantity
,sales_price
FROM all_detail
WHERE is_gift = 1 AND promotion_sku_code IS NOT NULL
) comp_sku
LEFT JOIN
初三复读怎么申请
(
SELECT
order_id
,
sku_code
FROM sales
) sales_tmp
ON der_id = der_id AND comp_sku.promotion_sku_code = sales_tmp.sku_code )
...
...
问题解决。
总结:
1. 在join或者union时,要养成定义字段别名的习惯。
2. 使⽤df编程时,也⼀样适⽤第⼀条总结。

本文发布于:2023-08-03 13:14:06,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1127690.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:查询   代码   结果   问题   猜测   解析   风俗   意思
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图