databricks sql表和视图是源数据的副本,还是更新相同的数据源?

ercv8c1e  于 2021-07-14  发布在  Spark
关注(0)|答案(0)|浏览(177)

假设您在dbfs中创建了一个表,如下所示。

%sql
DROP TABLE IF EXISTS silver_loan_stats;

-- Explicitly define our table, providing schema for schema enforcement.
CREATE TABLE silver_loan_stats (
    loan_status STRING, 
    int_rate FLOAT, 
    revol_util FLOAT, 
    issue_d STRING, 
    earliest_cr_line STRING, 
    emp_length FLOAT, 
    verification_status STRING, 
    total_pymnt DOUBLE, 
    loan_amnt FLOAT, 
    grade STRING, 
    annual_inc FLOAT, 
    dti FLOAT, 
    addr_state STRING, 
    term STRING, 
    home_ownership STRING, 
    purpose STRING, 
    application_type STRING, 
    delinq_2yrs FLOAT, 
    total_acc FLOAT,
    bad_loan STRING,
    issue_year DOUBLE,
    earliest_year DOUBLE,
    credit_length_in_years DOUBLE)
USING DELTA
LOCATION "/tmp/${username}/silver_loan_stats";

稍后,将数据(一个名为'loan\u stats'的Dataframe)保存到此源位置。


# Configure destination path

DELTALAKE_SILVER_PATH = f"/tmp/{username}/silver_loan_stats"

# Write out the table

loan_stats.write.format('delta').mode('overwrite').save(DELTALAKE_SILVER_PATH)

# Read the table

loan_stats = spark.read.format("delta").load(DELTALAKE_SILVER_PATH)

display(loan_stats)

我的问题是:
表和源数据是否链接?例如,删除或连接表中的数据也会更新源中的数据,删除或连接源中的数据也会更新表中的数据?
当您创建一个视图而不是一个表(“createorreplacetempview”而不是create table)时,上述情况是否成立?
当spark dataframes已经提供了很多功能时,我正在尝试了解使用spark sql的意义。。如果这两个数据实际上是相同的,我想这对我来说是有意义的,但是如果create table(或createorreplacetempview)意味着您要创建一个副本,那么我发现很难理解您为什么要花费这么多精力(和计算资源)来这样做。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题