簡體   English   中英

Spark SQL - 如何使用硬編碼值創建臨時表?

[英]Spark SQL - How can I create a temporary table with hardcoded values?

我想創建一個硬編碼表,以便可以將其用作其他地方的左連接。

Color
Red
Blue
Green
Yellow

我嘗試了很多組合,比如

with TempTable as (
select * from ("red","blue","green","yellow") as color 
)

但這似乎不起作用

臨時方法

您可以使用內聯表

SELECT * from VALUES ("Red"),("Blue"), ("Green"), ("Yellow") as Colors (color)

作為公用表表達式 (CTE)的示例:

WITH colors as (
   SELECT * from VALUES ("Red"),("Blue"), ("Green"), ("Yellow") as Colors (color)
)
SELECT 
  tbl1.*,
  colors.color
FROM
  tbl1
LEFT JOIN
  colors ON tbl1.color = colors.color

作為子查詢的示例:

SELECT 
  tbl1.*,
  colors.color
FROM
  tbl1
LEFT JOIN
  (SELECT * from VALUES ("Red"),("Blue"), ("Green"), ("Yellow") as Colors (color)) colors
  ON tbl1.color = colors.color

持久化這張表

create table colors AS
SELECT * from VALUES ("Red"),("Blue"), ("Green"), ("Yellow") as Colors (color)

然后您可以將其作為常規表查詢

參考

內聯表

您還可以創建臨時視圖:

create or replace temp view TempTable as (
    select * from values ('Red'), ('Blue'), ('Green'), ('Yellow')
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM