SparkSql 错误分析
(2017-05-03 15:21:23)分类: 并行计算与分布式计算 |
今天在跑一个SparkSql的时候,用hive直接运行命令
select cross_dist_in, count(*) from tbl_common_his_trans where
pdate=20160701 and trans_id='S22' group by cross_dist_in
能够跑通,
但是在SparkSql运行环境中 就出错,
报错User
class threw exception: org.apache.spark.sql.AnalysisException:
cannot resolve 'trans_id' given input columns: [pdate]; line 1 pos
84
原因是发现表 tbl_common_his_trans
字段之间是用空格或者逗号分隔的,所以需要引用额外的jar包加到环境变量中去。(如果一个表的分隔符使用的默认的\\001就不需要额外的jar包了)
打开log,果然发现有这样一句报错:
java.lang.ClassNotFoundException: Class com.bizo.hive.serde.csv.CSVSerde not found
就是把hive相关的jar包加入环境变量。
spark-submit \
--class staticProp \
--master yarn \
--deploy-mode cluster \
--queue root.default \
--driver-memory 3g \
--executor-memory 2G \
--num-executors 50 \
--conf spark.executor.extraClassPath=/opt/cloudera/parcels/CDH/lib/hive/auxlib/* \
--conf spark.driver.extraClassPath=/opt/cloudera/parcels/CDH/lib/hive/auxlib/*\
IntelDNN.jar