你好,我最近開始學習火花。我在學習關於火花管理表。所以按照文檔“火花管理數據和元數據”。假設我有一個csv文件在s3中我讀到下麵的數據幀。
df =火花。讀.format (csv) .option(“標題”、“true”) .option .load (“inferSchema”、“true”) (“s3a: / / databricks-learning-s333 / temp / flights.csv”)
現在,我創建了一個火花管理下麵的表在數據磚. .
火花。sql(“創建數據庫learn_spark_db”)火花。sql(“使用learn_spark_db”)火花。sql(“創建表managed_us_delay_flights_tbl(字符串,日期延遲INT, INT的距離,起源字符串,目的地字符串)”)df.write.saveAsTable (“managed_us_delay_flights_tbl”)
現在是一個火花管理表,所以引發管理數據和元數據。
根據文檔,如果我們刪除管理表火花刪除管理表,它將刪除元數據和實際數據(文檔)
這裏是我的問題:
1。下麵的代碼刪除表管理的火花,所以這意味著它會刪除我的s3原始數據或者是什麼意思火花刪除數據和元數據。
火花。sql (DROP TABLE managed_us_delay_flights_tbl)
2。我讀在這裏,當我們創建管理表,火花使用三角洲格式,實際上我在s3的csv格式的原始數據,這意味著它將改變csvδ格式或它將複製一樣,把它寫在三角洲格式的某個地方嗎?
3所示。如果我創建火花管理表,它使用相同的底層存儲之類的新位置,請詳細解釋。
非常感謝你的幫助。
嗨@Raviiit謝謝你發帖,
根據你的問題,
Q1。下麵的代碼刪除表管理的火花,所以這意味著它會刪除我的s3原始數據或者是什麼意思火花刪除數據和元數據?
答。它不會刪除你的原始s3數據,當你創建管理表數據存儲在/ user / dbfs蜂巢/倉庫/ learn_spark_db。db /文件夾。執行drop語句後,數據將被刪除從蜂巢/ user / /倉庫/ learn_spark_db。不是從S3 db /目錄。
如果你在表的創建提供了位置,它將被視為一個非托管表,表元數據被刪除而下降。
Q2。我讀在這裏,當我們創建管理表,火花使用三角洲格式,實際上,我的原始數據是在s3的csv格式,這意味著它將改變csvδ格式或它將複製相同的,把它寫在三角洲格式的某個地方嗎?
答:它在S3中不會改變原始數據,它將做什麼在足協將編寫相同的數據在/ user /蜂巢/倉庫/ learn_spark_db。db /位置δ格式如果你不指定任何格式。
你可以看到新的數據文件使用磚實用程序:
dbutils.fs.ls (“/ user /蜂巢/倉庫/ learn_spark_db.db /”)
第三季。如果我創建火花管理表,它使用相同的底層存儲之類的新位置,詳細解釋一下嗎?
答:當你創建一個磚資源還將創建一個底層存儲賬戶用於存儲數據的文件係統通常被稱為磚(dbfs)。
你可以看到使用UI或使用磚實用程序:
dbutils.fs.ls (“/”)
現在你的問題,隻要任何人都可以創建一個管理表將元數據和數據存儲在一個潛在的磚管理存儲賬戶。
你可以看到使用:
dbutils.fs.ls (“/ user /蜂巢/倉庫/”)
嗨@Raviiit謝謝你發帖,
根據你的問題,
Q1。下麵的代碼刪除表管理的火花,所以這意味著它會刪除我的s3原始數據或者是什麼意思火花刪除數據和元數據?
答。它不會刪除你的原始s3數據,當你創建管理表數據存儲在/ user / dbfs蜂巢/倉庫/ learn_spark_db。db /文件夾。執行drop語句後,數據將被刪除從蜂巢/ user / /倉庫/ learn_spark_db。不是從S3 db /目錄。
如果你在表的創建提供了位置,它將被視為一個非托管表,表元數據被刪除而下降。
Q2。我讀在這裏,當我們創建管理表,火花使用三角洲格式,實際上,我的原始數據是在s3的csv格式,這意味著它將改變csvδ格式或它將複製相同的,把它寫在三角洲格式的某個地方嗎?
答:它在S3中不會改變原始數據,它將做什麼在足協將編寫相同的數據在/ user /蜂巢/倉庫/ learn_spark_db。db /位置δ格式如果你不指定任何格式。
你可以看到新的數據文件使用磚實用程序:
dbutils.fs.ls (“/ user /蜂巢/倉庫/ learn_spark_db.db /”)
第三季。如果我創建火花管理表,它使用相同的底層存儲之類的新位置,詳細解釋一下嗎?
答:當你創建一個磚資源還將創建一個底層存儲賬戶用於存儲數據的文件係統通常被稱為磚(dbfs)。
你可以看到使用UI或使用磚實用程序:
dbutils.fs.ls (“/”)
現在你的問題,隻要任何人都可以創建一個管理表將元數據和數據存儲在一個潛在的磚管理存儲賬戶。
你可以看到使用:
dbutils.fs.ls (“/ user /蜂巢/倉庫/”)