首席数据官

Hi, 请登录

SpringBoot+SparkSQL操作JSON字符串

在SpringBoot中通过maven来做包管理构建,有几个地方需要注意一下的,需要解决包之间的冲突,否则运行时会报错:

(1)SparkSQL中需要先排除两个包:

复制代码
 1         <dependency> 2             <groupId>org.apache.spark</groupId> 3             <artifactId>spark-sql_2.11</artifactId> 4             <version>${spark.version}</version> 5             <exclusions> 6                 <exclusion> 7                     <groupId>org.codehaus.janino</groupId> 8                     <artifactId>janino</artifactId> 9                 </exclusion>10                 <exclusion>11                     <groupId>org.codehaus.janino</groupId>12                     <artifactId>commons-compiler</artifactId>13                 </exclusion>14             </exclusions>15         </dependency>
复制代码

(2)重新引入:

复制代码
 1         <dependency> 2             <groupId>org.codehaus.janino</groupId> 3             <artifactId>commons-compiler</artifactId> 4             <version>2.7.8</version> 5         </dependency> 6  7         <dependency> 8             <groupId>org.codehaus.janino</groupId> 9             <artifactId>janino</artifactId>10             <version>2.7.8</version>11         </dependency>
复制代码

ok,准备工作做完之后,开始代码层面得工作:

主要给大家演示的场景是将json字符串转换成临时表,然后通过sparkSQL操作临时表,非常简单方便:

复制代码
 1 public class SparkJsonSQL { 2  3     public void Exec(){ 4         SparkConf conf = new SparkConf(); 5         conf.setMaster("local[2]").setAppName("jsonRDD"); 6         JavaSparkContext sc = new JavaSparkContext(conf); 7         SQLContext sqlContext = new SQLContext(sc); 8  9         JavaRDD<String> nameRDD = sc.parallelize(Arrays.asList(10                 "{\"name\":\"zhangsan\",\"age\":\"18\"}",11                 "{\"name\":\"lisi\",\"age\":\"19\"}",12                 "{\"name\":\"wangwu\",\"age\":\"20\"}"13         ));14         JavaRDD<String> scoreRDD = sc.parallelize(Arrays.asList(15                 "{\"name\":\"zhangsan\",\"score\":\"100\"}",16                 "{\"name\":\"lisi\",\"score\":\"200\"}",17      
试看结束,如继续查看请付费↓↓↓↓
打赏0.5元才能查看本内容,立即打赏

来源【首席数据官】,更多内容/合作请关注「辉声辉语」公众号,送10G营销资料!

版权声明:本文内容来源互联网整理,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 jkhui22@126.com举报,一经查实,本站将立刻删除。

相关推荐

二维码
评论