spark sql 异常

 

1.spark SQL 测试过程中报如下错误 org.apache.spark.sql.AnalysisException

--

20/08/25 11:42:08 INFO Client: resolveAppExceptionMsg, msg start
20/08/25 11:42:08 INFO Client: resolveAppExceptionMsg, msg:User class threw exception: org.apache.spark.sql.AnalysisException: expression 'dpstg_dpmid_platform_shopping_mtshop_coop_online_d_v0_20200824.`event_type`' is neither present in the group by, nor is it an aggregate function. Add to group by or wrap in first() (or first_value) if you don't care which value you get.;;
Project [moudle2moudle AS mark#183, moudle2moudle AS revisit_type#184, platform_id#219, all AS bu_class_id#185, all AS bu_class_name#186, page_identifier#222, page_name#223, all AS event_id#187, element_name#161 AS module_name#188, module_product_name#225, view_pv#175L, view_uv#176L, tap_uv#177L, tap_pv#178L, revisit_ratio_7d#179, revisit_ratio_30d#180, revisit_click_ratio_7d#181, revisit_click_ratio_30d#182, hp_cal_dt#218]

 错误代码如下

SELECT dpid,hp_cal_dt,platform_id,event_type, sum(pv) as pv
FROM shop_table 
group by  dpid,hp_cal_dt,platform_id

修改后: 


SELECT dpid,hp_cal_dt,platform_id,event_type, sum(pv) as pv
FROM shop_table 
group by dpid,hp_cal_dt,platform_id,event_type
                

原因是:上述业务逻辑比较复杂,因此把逻辑进行精简说明主要问题,group by  的维度比较多,grouping  sets  部分都省略了,主要挑选dpid,hp_cal_dt,platform_id,event_type维度说明主要问题,org.apache.spark.sql.AnalysisException这种错误的主要原因是语法错误,具体是聚合维度和group by 的维度个数不一致。

 

相关链接:https://www.jianshu.com/p/c131657a5813


                

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spark SQL 是一种新的基于 Spark 引擎的处理结构化数据的方式。通过Spark SQL,我们可以安装在Hadoop上的大规模数据集进行高效的处理,同时也可以使用SQL语法对数据进行查询。Spark SQL 有着比普通的Hadoop MapReduce 更高的处理速度,因为它使用了内存计算技术。在Spark SQL中,我们可以将 CSV 文件导入到数据库中。这么做的好处在于可以更方便的对数据进行分析以及更好的数据管理。 首先,我们需要从数据库中读取需要导入的目标表,然后将 CSV 文件中的数据进行格式化,并且将其写入到数据库中的相应列和行。我们可以利用Spark SQL的DataFrames将CSV文件映射到数据库的表结构中,并利用SparkSQLSQLContext完成数据的处理操作。SQLContext通过读取CSV文件获取数据,使用createDataFrame将RDD转换为DataFrame,然后使用saveAsTable操作存储到数据库中。此时,我们可以使用 Spark SQL 的查询语言对所导入的数据进行查询分析,例如可以使用SQL语法执行聚合操作,查询出数据的最大、最小、平均值等。 在实现以上操作时,我们需要注意以下几点: 1. 注意CSV文件的编码方式,需要与目标数据库的编码方式一致,否则在导入过程中可能会出现乱码或其他错误。 2. 在数据导入的过程中,需要注意验证数据的有效性,以及对可能存在的异常数据进行处理和清理。 3. 导入的数据量较大时,需要注意Spark SQL 的性能问题,做到合理的数据分区、调整并行度等。 总之,Spark SQL 对于CSV文件的快速读取和数据导入非常方便,同时也为后续的数据分析提供了更加可靠高效的数据源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值