簡體   English   中英

Spark在hdfs寫入鑲木地板

[英]Spark write to parquet on hdfs

我安裝了3個節點hadoop和spark。 我想從rdbms中獲取數據到數據框中,並將這些數據寫入HDFS中的鑲木地板。 “dfs.replication”值為1。

當我嘗試使用以下命令時,我已經看到所有HDFS塊都位於我執行spark-shell的節點上。

scala> xfact.write.parquet("hdfs://sparknode01.localdomain:9000/xfact")

這是預期的行為還是應該在群集中分布所有塊?

謝謝

由於您將數據寫入HDFS,因此不依賴於spark,而是依賴於HDFS。 來自Hadoop:權威指南

Hadoop的默認策略是將第一個副本放在與客戶端相同的節點上(對於在群集外部運行的客戶端,隨機選擇一個節點,盡管系統嘗試不選擇太滿或太忙的節點)。

所以,是的,這是預期的行為。

就像@nik說的那樣,我用多個客戶做我的工作,它完成了我:

這是python片段:

columns = xfact.columns test = sqlContext.createDataFrame(xfact.rdd.map(lambda a: a),columns) test.write.mode('overwrite').parquet('hdfs://sparknode01.localdomain:9000/xfact')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM