java spark sql问题

baidu_36664601 2016-11-09 09:34:14
JavaPairRDD<ImmutableBytesWritable, Result> jPairRDD = sc.newAPIHadoopRDD(config,TableInputFormat.class, ImmutableBytesWritable.class,Result.class);
RDD<Tuple2<ImmutableBytesWritable,Result>> aa = JavaPairRDD.toRDD(jPairRDD);
DataFrame df = sqlContext.createDataFrame(aa, AuthStaff.class);
这里createDataFrame传入的AuthStaff为自定义的javabean,这个编译没问题,提交任务 到spark-submit上运行时,会报错:
java.lang.IllegalArgumentException: object is not an instance of declaring class
求教这个是什么原因,是不是我的AuthStaff的javabean,要做什么处理。
...全文
135 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_36664601 2016-11-10
  • 打赏
  • 举报
回复
引用 1 楼 link0007 的回复:
你要把result转为你的bean,才能用这种方法。否则就要用RowFactory+DataTypes.createStructType
请问要怎么转呢
LinkSe7en 2016-11-10
  • 打赏
  • 举报
回复
你要把result转为你的bean,才能用这种方法。否则就要用RowFactory+DataTypes.createStructType
baidu_36664601 2016-11-10
  • 打赏
  • 举报
回复
引用 3 楼 link0007 的回复:
[quote=引用 2 楼 baidu_36664601 的回复:] [quote=引用 1 楼 link0007 的回复:] 你要把result转为你的bean,才能用这种方法。否则就要用RowFactory+DataTypes.createStructType
请问要怎么转呢[/quote]

JavaPairRDD<ImmutableBytesWritable, Result> jPairRDD = sc.newAPIHadoopRDD(config,TableInputFormat.class, ImmutableBytesWritable.class,Result.class);
jPairRDD.map(new Function<Tuple2<ImmutableBytesWritable, Result>,AuthStaff> () {
@Override
AuthStaff call (Tuple2<ImmutableBytesWritable, Result> tuple2) throws Exception { 
Result res = tuple2._2();
AuthStaff bean = new AuthStaff();
bean.setxxx(res.getValue(xx,xxx));
return bean;
}
});
[/quote] 非常感谢你的帮助,问题解决了!非常感谢!
LinkSe7en 2016-11-10
  • 打赏
  • 举报
回复
引用 2 楼 baidu_36664601 的回复:
[quote=引用 1 楼 link0007 的回复:] 你要把result转为你的bean,才能用这种方法。否则就要用RowFactory+DataTypes.createStructType
请问要怎么转呢[/quote]

JavaPairRDD<ImmutableBytesWritable, Result> jPairRDD = sc.newAPIHadoopRDD(config,TableInputFormat.class, ImmutableBytesWritable.class,Result.class);
jPairRDD.map(new Function<Tuple2<ImmutableBytesWritable, Result>,AuthStaff> () {
@Override
AuthStaff call (Tuple2<ImmutableBytesWritable, Result> tuple2) throws Exception { 
Result res = tuple2._2();
AuthStaff bean = new AuthStaff();
bean.setxxx(res.getValue(xx,xxx));
return bean;
}
});

1,261

社区成员

发帖
与我相关
我的任务
社区描述
Spark由Scala写成,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于MapReduce算法实现的分布式计算。
社区管理员
  • Spark
  • shiter
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧