我正在嘗試使用 Databricks 在 Apache Spark 中創建一個 HIVE 表。
我正在使用以下代碼:
%sql
CREATE OR REPLACE VIEW testdatabase.testtable
AS
SELECT
*
FROM location '/mnt/mylocation'
但我收到以下錯誤:
Error in SQL statement: ParseException:
extraneous input ''/mnt/mylocation'' expecting {<EOF>, ';'}(line 7, pos 14)
== SQL ==
CREATE OR REPLACE VIEW testdatabase.testtable
AS
SELECT
*
FROM location '/mnt/mylocation'
有人可以讓我知道我哪里出錯了嗎?
uj5u.com熱心網友回復:
您可以這樣做,但您需要更改語法 - 而不是location使用格式(檔案中對此進行了描述):
<file_format>.`<location>`
例如:
%sql
CREATE OR REPLACE VIEW testdatabase.testtable
AS SELECT *
FROM delta.`/mnt/mylocation`
uj5u.com熱心網友回復:
我不相信 VIEWS 支持在 SELECT 查詢中指定資料源。
創建視圖 Spark 3.0.1 檔案
我相信只有 TABLES 支持location 關鍵字。請記住,當您指定位置路徑時,創建 Hive“表”只是指向檔案的指標。
將其更改為CREATE TABLE陳述句并指定架構應該可以作業。
CREATE TABLE testdatabase.testtable (
col1 INT,
col2 STRING,
...
)
USING PARQUET
LOCATION '/mnt/mylocation'
如果您只是想要一些短暫的東西,您可以將其作為 DataFrame 讀入,然后注冊一個臨時表。
df = spark.read.parquet('/mnt/mylocation')
df.createOrReplaceTempView('testtable')
現在您可以default.testtable在 SQL 單元格中使用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/353011.html
