我正在尝试通过来自特定位置的加载查询将数据加载到外部配置单元表中。
SparkSession sqlContext = null;
sqlContext = new org.apache.spark.sql.SparkSession.Builder().enableHiveSupport().getOrCreate();
String query = "LOAD DATA LOCAL INPATH '/home/user/outputfiles/P20170613097' INTO TABLE table1 PARTITION (p1='20170613',p2='P2017061301')";
sqlcontext.sql(query);
最后,hive表中的分区P2017061301收集数据,并且该分区不包含均匀分布的分区文件,其大小均匀,而是像:
part-m-00000 125 KB
part-m-00001 763 KB
part-m-00002 28,171 KB
part-m-00003 68 KB等等
为了提高表的效率,我试图在使用"spark.sql.shuffle.partitions=10"
将数据加载到hive表之前对数据进行重新分区,但这不起作用。对此有何帮助?