14.4 Spark-SQL基于Cassandra数据分析编程实例

23 篇文章 11 订阅
4 篇文章 1 订阅

14.4 Spark-SQL基于Cassandra数据分析编程实例

卜算子·大数据”一个开源、成体系的大数据学习教程。——每周日更新

本节主要内容:

Spark对Canssandra数据库数据的处理,通过Spark SQL对结构化数据进行数据分析。

  • 创建Gradle项目,引入依赖
  • 创建Spark Session连接
  • 写入Cassandra数据库
  • 读取Cassandra数据库
  • Spark注册SQL 临时视图执行Distinct操作

完整源码Spark2Cassandra.java

完整项目源码

14.3.1 引入依赖

compile group: 'org.apache.spark', name: 'spark-core_2.11', version: '2.3.1'
compile group: 'org.apache.spark', name: 'spark-sql_2.11', version: '2.3.1'
compile group: 'com.datastax.spark', name: 'spark-cassandra-connector_2.11', version: '2.3.0'

14.3.2 创建Spark Session

SparkSession spark = SparkSession
        .builder()
        .appName("Java Spark SQL basic example")
//            .config("spark.some.config.option", "some-value")
        .config("spark.cassandra.connection.host", "192.168.56.110")
        .config("spark.cassandra.auth.username", "busuanzi")
        .config("spark.cassandra.auth.password", "busuanzi.org")
        .config("spark.cassandra.connection.port", "9042")
        .getOrCreate();

14.3.3 写入Cassandra数据库表

ds1.write()
        .format("org.apache.spark.sql.cassandra")
        .options(new HashMap<String, String>() {
            {
                put("keyspace", "busuanzi_org");
                put("table", "top_n_url");
            }
        }).mode("append").save();

这里写图片描述
查询Canssandra数据库

这里写图片描述

14.3.4 读取Cassandra数据库表

Dataset<Row> ds = spark.read()
        .format("org.apache.spark.sql.cassandra")
        .options(new HashMap<String, String>(){
            {
                put("keyspace", "busuanzi_org");
                put("table", "top_n_url");
            }
        }).load();
ds.show();

这里写图片描述

14.3.5 Spark SQL Distinct去重

将ds DataFrame注册为SQL临时视图

ds.createOrReplaceTempView("dsv");

Spark SQL去重

ds.select("username", "projects", "comment").distinct().show();

这里写图片描述

完整源码Spark2Cassandra.java

完整项目源码

14.3.6 在IDEA运行项目设置

这里写图片描述

这里写图片描述本节完成

长按关注从入门到精通

这里写图片描述

源码获取 https://github.com/wangxiaoleiAI/big-data

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值