spark-sql做ETL时遇到的两个问题

时间:2022-03-19 23:10:02

项目中使用spark-sql来作ETL,遇到两个问题,记录一下。

问题1:

spark-sql –master yarn –hiveconf load_date=`date –d ..`  -e ‘insert overwrite table tbl(.) select distinct * from tbl”

在hdfs上这个表所在的目录下面会产生很多的类似.hive-staging-yyyy-MM-dd…的文件

问题2:

spark-sql生成的目录特别多,尤其是我使用spark-streaming结合spark-sql来做实时数据收集与合并的时候

         解决方法:

1。参考网络。配置hive.exec.stagingdir到一个特定目录,然后定时作业进行清除,请清除昨天的数据,今天的数据可能正在使用。

2。配置hive的作业项,然后使用hive进行合并小文件

set hive.merge.mapredfiles=true;

set hive.merge.size.pertask=128000000;

set hive.merge.smallfiels.avgsize=16000000;