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

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

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

  1. %sql
  2. DROP TABLE IF EXISTS silver_loan_stats;
  3. -- Explicitly define our table, providing schema for schema enforcement.
  4. CREATE TABLE silver_loan_stats (
  5. loan_status STRING,
  6. int_rate FLOAT,
  7. revol_util FLOAT,
  8. issue_d STRING,
  9. earliest_cr_line STRING,
  10. emp_length FLOAT,
  11. verification_status STRING,
  12. total_pymnt DOUBLE,
  13. loan_amnt FLOAT,
  14. grade STRING,
  15. annual_inc FLOAT,
  16. dti FLOAT,
  17. addr_state STRING,
  18. term STRING,
  19. home_ownership STRING,
  20. purpose STRING,
  21. application_type STRING,
  22. delinq_2yrs FLOAT,
  23. total_acc FLOAT,
  24. bad_loan STRING,
  25. issue_year DOUBLE,
  26. earliest_year DOUBLE,
  27. credit_length_in_years DOUBLE)
  28. USING DELTA
  29. LOCATION "/tmp/${username}/silver_loan_stats";

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

  1. # Configure destination path
  2. DELTALAKE_SILVER_PATH = f"/tmp/{username}/silver_loan_stats"
  3. # Write out the table
  4. loan_stats.write.format('delta').mode('overwrite').save(DELTALAKE_SILVER_PATH)
  5. # Read the table
  6. loan_stats = spark.read.format("delta").load(DELTALAKE_SILVER_PATH)
  7. display(loan_stats)

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

暂无答案!

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

相关问题