spark-sql使用筆記


如何使用hive的udf

  • 可以使用spark-sql --jars /opt/hive/udf.jar,指定udf的路徑
  • 還可以在spark-default.conf里指定spark.jars /opt/hive/udf.jar

Truncated the string representation of a plan since it was too large

在spark-default.conf 里設置
spark.sql.debug.maxToStringFields 2000
spark.debug.maxToStringFields 2000

使用sparksql默認情況下會生成很多小文件,設置如下參數可以解決:

set spark.sql.adaptive.enabled=true;
具體可以參考:
https://www.jianshu.com/p/ddd2382a738a

在spark-default.conf里添加:spark.hadoop.hive.exec.orc.split.strategy ETL
spark.hadoop.hive.exec.orc.split.strategy是用來設置spark在讀取orc文件時候的策略的,
BI策略以文件為粒度進行split划分;ETL策略會將文件進行切分,多個stripe組成一個split;
HYBRID策略為:當文件的平均大小大於hadoop最大split值(默認256M)時使用ETL策略,否則使用BI策略。

對於一些較大的ORC表,可能其footer(用於描述整個文件的基本信息、表結構信息、行數、各個字段的統計信息以及各個Stripe的信息)較大,ETL策略可能會導致其從hdfs拉取大量的數據來切分split,甚至會導致driver端OOM,因此這類表的讀取建議使用BI策略。

對於一些較小的尤其有數據傾斜的表(這里的數據傾斜指大量stripe存儲於少數文件中),建議使用ETL策略

這里的原因還沒有調查,只是在網上查了個方法。

參考:https://www.cnblogs.com/barneywill/p/10142244.html
https://blog.csdn.net/Jiaoxin02/article/details/99293135


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM