全部版块 我的主页
论坛 数据科学与人工智能 大数据分析 spark高速集群计算平台
3534 0
2016-06-13

一、Java方式:

复制代码

运行结果如下:

复制代码

解决办法:Person_类需要Public修饰符,将Person_放到单独的文件

运行结果如下:

复制代码

错误原因:返回的ROW中的字段并没有按照Person_字段的顺序排列

Row中的字段顺序:

T@1UJ_T_[(Y0KHY13JI`%W6.png

可以看到这里scheme的顺序并不是我们定义的字段顺序

解决办法:

复制代码

可以看到这里Row 提供了根据Row中的字段名称来获取字段的值

修改代码:

复制代码

运行结果:

复制代码

提示我们Person_ 没有序列化

解决办法:

让Person_ 实现Serializable 接口

再次运行:

复制代码

这次运行成功了

总结:

JavaRDD和DataFrame互相转换注意事项:

1)反射的类必须是Pulicclass

2)定义的类必须实现Serializable 接口

3)DataFrame 转换成RDD时注意根据fieldName 获取对应的值


二、scala方式

8WH8UK}(4XCBKNXG9@{~4FQ.png

注意:这里lines.map 返回的RDD并没有.toDF 方法,这里用到了隐式转换

复制代码

隐式转换最终将RDD转换成了DataFrameHolder 然后调用toDF 最终将RDD转换成了DataFrame了

复制代码



注:本学习笔记来自DT大数据梦工厂        微信公众号:DT_Spark        每晚8点YY永久直播频道:68917580

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群