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



用例是将本地文件加载到HDFS。下面是做同样事情的两种方法,请告诉我哪一种更有效。

方法1:使用hdfs put命令

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

方法2:使用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是一个hive外部表,指向/user/table_nm/

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

如果有很多文件,那么通过-put可以做的工作更少。