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