Spark整合hive实现数据的读取输出-创新互联
实验环境: linux centOS 6.7 vmware虚拟机
创新互联公司专注于网站建设,为客户提供成都网站制作、网站设计、网页设计开发服务,多年建网站服务经验,各类网站都可以开发,品牌网站建设,公司官网,公司展示网站,网站设计,建网站费用,建网站多少钱,价格优惠,收费合理。spark-1.5.1-bin-hadoop-2.1.0
apache-hive-1.2.1
eclipse 或IntelJIDea 本次使用eclipse.
代码:
import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.sql.DataFrame; import org.apache.spark.sql.hive.HiveContext; public class SparkOnHiveDemo { public static void main(String[] args) { // 首先还是创建SparkConf SparkConf conf = new SparkConf().setAppName("HiveDataSource"); // 创建JavaSparkContext JavaSparkContext sc = new JavaSparkContext(conf); // 创建HiveContext,注意,这里,它接收的是SparkContext作为参数,不是JavaSparkContext HiveContext hiveContext = new HiveContext(sc.sc()); //1.可以使用HiveContext 下面的sql(xxx语句)执行HiveSQL语句 //1 .删除表,创建表 // stars_infos ,stars_scores hiveContext.sql("DROP TABLE IF EXISTS stars_infos"); hiveContext.sql("CREATE TABLE IF NOT EXISTS stars_infos(name STRING,age INT) " + "row format delimited fields terminated by ','"); //2.向表里面导入数据 hiveContext.sql("LOAD DATA " + "LOCAL INPATH " + "'/root/book/stars_infos.txt' " + "INTO TABLE stars_infos"); hiveContext.sql("DROP TABLE IF EXISTS stars_scores"); hiveContext.sql("CREATE TABLE IF NOT EXISTS stars_scores(name STRING,score INT) " + "row format delimited fields terminated by ','"); hiveContext.sql("LOAD DATA " + "LOCAL INPATH " + "'/root/book/stars_score.txt' " + "INTO TABLE stars_scores"); //3.从一张已经存在的hive表里面拿数据,转换为DF DataFrame superStarDataFrame = hiveContext.sql("SELECT si.name,si.age,ss.score " + "FROM stars_infos si " + "JOIN stars_scores ss ON si.name=ss.name " + "WHERE ss.score>=90"); //4.把DF的数据再持久化到hive中去,千万别和registerTemtable搞混了 hiveContext.sql("DROP TABLE IF EXISTS superStar"); superStarDataFrame.saveAsTable("superStar"); //5.直接从Hive中得到DF hiveContext.table("superStar").show(); sc.close(); } }
元数据:
可以下载附件,然后上传到指定的目录下。
把程序打包jar后上传到linux指定的目录下,写一个脚本。脚本附件见正文。具体内容修改即可。
运行脚本就可以了。当然要保证MySQL数据库正常,hive正常。
附件:http://down.51cto.com/data/2366931另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章标题:Spark整合hive实现数据的读取输出-创新互联
文章地址:http://azwzsj.com/article/djogjp.html