文档章节

SparkSQLHive数据源实例

别寒
 别寒
发布于 2017/07/27 16:05
字数 396
阅读 8
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

package cn.hhb.spark.sql;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.DataFrame;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.hive.HiveContext;

/**
 * Created by dell on 2017/7/27.
 */
public class HiveDataSource {
    public static void main(String[] args) {

        // 创建SparkConf
        SparkConf conf = new SparkConf()
                .setAppName("HiveDataSource").setMaster("local")
                .set("spark.testing.memory", "2147480000");

        // 创建javasparkContext
        JavaSparkContext sc = new JavaSparkContext(conf);
        // 创建HiveContext,注意,这里,接收的是sparkcontext作为参数,不是javasparkcontext
        HiveContext hiveContext = new HiveContext(sc.sc());

// 第一个功能:使用hivecontext的sql() hql()方法,可以执行hive中能够执行的hive语句
        // 判断是否存在student_infos表,如果存在则删除
        hiveContext.sql("DROP TABLE IF EXISTS student_infos");
        // 判断是否不存在student_infos表,如果不存在则创建
        hiveContext.sql("DROP TABLE IF NOT EXISTS student_infos (name STRING, age INT)");
        // 将学生基本信息数据导入student_infos表
        hiveContext.sql("LOAD DATA LOCAL INPATH '/user/local/student_infos.txt' INTO TABLE student_infos");

        // 用同样的方式给student_scores导入数据
        hiveContext.sql("DROP TABLE IF EXISTS student_scores");
        hiveContext.sql("DROP TABLE IF NOT EXISTS student_scores (name STRING, age INT)");
        // 将学生基本信息数据导入student_infos表
        hiveContext.sql("LOAD DATA LOCAL INPATH '/user/local/student_scores.txt' INTO TABLE student_scores");


 // 第二个功能,执行sql还可以返回dataframe,用于查询

        // 执行sql查询,关联两张表,查询成绩大于80分的学生
        DataFrame goodStudentsDF = hiveContext.sql("select si.name, si.age, ss.score from student_infos si join student_scores ss on si.name=ss.name where ss.score >=80");


// 第三个功能,可以将dataframe中的数据,理论上来说,dataframe对应的rdd的元素,是row即可将dataframe中的数据保存到hive表中

        // 将dataframe中的数据保存到good_student_infos表中
        hiveContext.sql("DROP TABLE IF EXISTS good_student_infos");
        goodStudentsDF.saveAsTable("good_student_infos");


// 第四个功能,可以用table()方法,针对hive表,直接创建dataframe

        // 然后针对good_student_infos表,直接创建dataframe
        Row[] goodStudentRows = hiveContext.table("good_student_infos").collect();
        for (Row goodStudentRow : goodStudentRowss){
            System.out.println(goodStudentRow);
        }

        sc.close();
    }
}

别寒
粉丝 30
博文 273
码字总数 155300
作品 0
永州
程序员
私信 提问
加载中
请先登录后再评论。
游戏开发者后端服务--OpenKit

OpenFeint 关门大吉后,OpenFeint 创始人推出了开源项目 OpenKit。OpenKit 支持Unity 3D游戏引擎,并未 iOS 和 Android 的游戏开发者提供开源 API以及存储、数据同步服务。OpenKit 目前提供對...

匿名
2013/03/11
3K
0
开源数据访问组件--Smark.Data

Smark.Data是基于Ado.net实现的数据访问组件,提供基于强类型的查询表达式进行灵活的数据查询,统计,修改和删除等操作;采用基于条件驱动的操作模式,使数据操作更简单轻松;内部通过标准SQL...

泥水佬
2013/03/12
2.6K
0
Java™ 编译器--Janino

Janino是一个超级小但又超级快的Java™ 编译器. 它不仅能像javac工具那样讲一组源文件编译成字节码文件,还可以对一些Java表达式,代码块,类中的文本(class body)或者内存中源文件进行编译,...

匿名
2013/04/02
4.1K
0
数据中心生命周期管理--Foreman

Foreman是一个集成的数据中心生命周期管理工具,提供了服务开通,配置管理以及报告 功能,和Puppet Dahboard一样,Foreman也是一个Ruby on Rails程序.Foreman和 Dashboard不同的地方是在于,Fore...

匿名
2012/10/24
1.5W
0
Python数据分析工具包--Pandas

Python Data Analysis Library 或 pandas 是连接 SciPy 和 NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集...

匿名
2012/10/30
2.1W
2

没有更多内容

加载失败,请刷新页面

加载更多

Java圈里,什么样的人,会越来越穷?

“我不想做 Java 了,想去做大数据!但我一个双非本科,能行么?“ 我还挺费解,为什么疫情之后,很多粉丝都想去做大数据, 但仔细想想原因太简单。 因为做大数据值钱、岗位还多。(是的,成...

倪升武
今天
2
0
Java 8 - Stream 集合操作快速上手

点击上方Java学习指南关注公众号 每天阅读Java干货文章 链接:www.jianshu.com/p/9fe8632d0bc2 目录 Stream 简介 为什么要使用 Stream 实例数据源 Filter Map FlatMap Reduce Collect Option...

xqnode
前天
19
0
工作流引擎的工作原理与功能

协同工作流引擎(Synchro flow)基于企业流程自动化基础的平台的产品同时也是企业流程再造的核心产品,并且提供以业务建模、流程设计、流程仿真、界面设计、业务整合、部署执行、系统管理、业...

osc_3nr0mda4
44分钟前
0
0
第三本 PDF !!!程序员必知核心基础知识

我们可以感觉出来,计算机专业的门槛正在逐渐增高,人与人之间的差距在逐渐拉大,今天和 一位阿里的大龄程序员聊天后发现,他也觉得自己底层知识很薄弱,正在找时间恶补,也在感叹时间管理的...

osc_htns3spg
45分钟前
9
0
【CSS】679- rem,em,px的区别和使用场景

作者:大前端小菜鸟 来源: cnblogs.com/hyns/p/12380944.html 作rem布局原理深度理解(以及em/vw/vh) 一、前言 我们h5项目终端适配采用的是淘宝那套《Flexible实现手淘H5页面的终端适配》方...

前端自习课
前天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部