使用 hdfs put vs spark 将本地文件加载到 HDFS

Loading local file into HDFS using hdfs put vs spark

用例是将本地文件加载到HDFS。下面两种是相同的方法,请指点哪一种有效。

方法一:使用 hdfs put 命令

hadoop fs -put /local/filepath/file.parquet   /user/table_nm/

方法二:使用 Spark .

spark.read.parquet("/local/filepath/file.parquet  ").createOrReplaceTempView("temp")
spark.sql(s"insert into table table_nm select * from temp")

注:

  1. 源文件可以是任何格式
  2. 文件加载不需要转换。
  3. table_nm 是一个外部 table 指向 /user/table_nm/
  4. 的配置单元

假设它们已经构建了本地 .parquet 文件,使用 -put 会更快,因为没有启动 Spark 应用程序的开销。

如果有很多文件,通过 -put 做的工作就更少了。