用例是将本地文件加载到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")
注意:
- 源文件可以是任何格式
- 文件加载不需要转换
- table_nm是一个hive外部表,指向/user/table_nm/
假设它们已经构建在本地.parquet文件中,使用-put将更快,因为没有启动Spark应用程序的开销。
如果有很多文件,那么通过-put可以做的工作更少。