2017-04-11 16 views
0

我正在使用peopleDF.write.parquet("people.parquet")代碼將數據寫入parquet文件格式。現在我所要做的是從同一個代碼,我想在這個parquet文件,然後我可以在以後從查詢的頂部創建一個table。我怎樣才能做到這一點?從地板文件頂部的pyspark代碼創建表

+0

什麼表?您可以將該實木複合地板加載到DataFrame。將其註冊爲臨時表並使用sparkSQL運行您的查詢。或者告訴我們你如何運行查詢? –

+0

@YuriyNedostup我想要的是根據我寫的地板文件創建一個配置單元表。我不想要臨時表 – user2966197

+0

您的拼花文件是否存儲在HDFS中? –

回答

0

可以使用saveAsTable method

peopleDF.write.saveAsTable('people_table') 
+0

但那保存數據幀作爲一個表,並在地板文件 – user2966197

0

你有hive這樣創建外部表:

CREATE EXTERNAL TABLE my_table (
    col1 INT, 
    col2 INT 
) STORED AS PARQUET 
LOCATION '/path/to/'; 

哪裏/path/to/是在HDFS文件的絕對路徑。

如果要使用分區您可以添加PARTITION BY (col3 INT)。在這種情況下,您需要執行repair

+0

感謝的頂部而不是創建該表!這我知道,但如何從pyspark代碼執行呢? – user2966197

+0

你不需要。只要確保文件在目錄中。每次添加新數據時,您都必須執行修復並使元數據無效以查看更改。您可以通過命令行配置單元或通過使用一些工具,如sqlWorkbench –

+0

啊查詢您的表,你可以試試這個:http://stackoverflow.com/questions/36051091/query-hive-table-in-pyspark。一旦表創建您可以通過HiveContext –