通过spark SQL 的API访问我的DataFrame出错

来源:6-6 -DataFrame与RDD互操作方式一

慕的地5108060

2018-06-07

我的代码

http://img.mukewang.com/szimg/5b190a1e0001f3be16000841.jpg

可以正确执行结果如下

http://img.mukewang.com/szimg/5b190a260001511816001038.jpg

可是如果我把sql修改一下  改成  select count(1) from infos_table where category = 'upload' 

就会报下面的错误,

http://img.mukewang.com/szimg/5b190a7600018e3016000554.jpg

请问是不是 spark sql 在书写的时候跟传统的sql有一些区别呢?这些在哪里可以查询到?


写回答

2回答

Michael_PK

2018-06-07

你这是有列格式不对啊,-不能转成数值类型。。。。 检查下

0
1
慕的地5108060
非常感谢!
2018-06-07
共1条回复

慕的地5108060

提问者

2018-06-07

谢谢老师,是说基本sql的语法都能正常执行吗?我刚才改了我的代码,,修正了数据转化的问题。

select cmsType,count(1) as totle from infos_table group by cmsType order by totle desc

我这样写也能正确返回结果了。谢谢老师


再问一句。这种使用sql 方式查询如果对于数据量比较大的结果。是不是有效率问题?还是说可以跟rdd的方式效率差不多?

在实际工作中更倾向使用哪种方式呢?//img.mukewang.com/szimg/5b19105e0001300109001596.jpg

0
1
Michael_PK
推荐用spark SQL,这比rdd性能更好,因为底层有优化
2018-06-07
共1条回复

以慕课网日志分析为例 进入大数据Spark SQL的世界

快速转型大数据:Hadoop,Hive,SparkSQL步步为赢

1644 学习 · 1129 问题

查看课程