我想跳過 hdfs 中檔案的前 36 行并復制到 hdfs 中的另一個位置。是否有任何類似于 head/tail 的命令
uj5u.com熱心網友回復:
很簡單,不,沒有單線可以做到這一點。Hadoop 中的檔案可能很大,因此沒有 CLI 工具來執行基本操作,因為計算引擎與 HDFS 分離。你最好的選擇——取決于你的集群是如何設定的——要么是一個簡單的 MapReduce 作業(查看 Python 字數統計示例),要么是一個 Spark 作業。
uj5u.com熱心網友回復:
您可以在 Spark 中實作一個解決方法:
逐個檔案讀取:
val df=spark.read.csv("file1.csv")
包括每一行的行號:
df.withColumn("row_id", monotonically_increasing_id())
過濾前 36 行并將檔案寫入另一個位置:
df.filter(!col("row_id").isin(1 to 36)).drop("row_id").write.save("destination-path")
uj5u.com熱心網友回復:
正如Ben所建議的,我能夠使用 spark 作業來完成它,并根據正確的標志排除了這些行
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/339922.html
