热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

hivecontextmysql_Spark从零到开发(六)HiveContext

SparkSQL执行引擎的一个实例,它与存储在Hive中的数据集成在一起。从类路径上的hive-site.xml读取Hive的配置。1.java本地执行1.1json

Spark SQL执行引擎的一个实例,它与存储在Hive中的数据集成在一起。从类路径上的hive-site.xml读取Hive的配置。

1. java本地执行

1.1 json文件:{"id":1,"name":"FantJ","age":18}

{"id":2,"name":"FantJ2","age":18}

{"id":3,"name":"FantJ3","age":18}

{"id":4,"name":"FantJ4","age":18}

{"id":5,"name":"FantJ5","age":18}

{"id":6,"name":"FantJ6","age":18}

1.2 DataFormCreate.javapublic class DataFormCreate {

public static void main(String[] args) {

SparkConf conf = new SparkConf().setAppName("DataFormCreate").setMaster("local");

JavaSparkContext sc = new JavaSparkContext(conf);

SQLContext sqlContext = new SQLContext(sc);

DataFrame df = sqlContext.read().json("C:\\Users\\84407\\Desktop\\spark.json");        //打印所有数据

df.show();        //打印元数据

df.printSchema();        //查询某列数据

df.select("id").show();        //查询多个列兵对列进行计算

df.select(df.col("name"),df.col("age").plus(1)).show();        //过滤

df.filter(String.valueOf(df.col("name").equals("Fantj"))).show();        //按照组进行统计

df.groupBy(df.col("age")).count().show();

}

}

1.3 控制台输出:+---+---+------+|age| id|  name|+---+---+------+| 18|  1| FantJ|| 18|  2|FantJ2|| 18|  3|FantJ3|| 18|  4|FantJ4|| 18|  5|FantJ5|| 18|  6|FantJ6|+---+---+------+

root |-- age: long (nullable = true)

|-- id: long (nullable = true) |-- name: string (nullable = true)

+---+

| id|

+---+

|  1|

|  2|

|  3|

|  4|

|  5|

|  6|

+---+

+------+---------+

|  name|(age + 1)|+------+---------+| FantJ|       19|

|FantJ2|       19||FantJ3|       19|

|FantJ4|       19||FantJ5|       19|

|FantJ6|       19|+------+---------+

+---+---+----+|age| id|name|+---+---+----+

+---+---+----+

+---+-----+|age|count|

+---+-----+

| 18|    6|+---+-----+

2. 集群脚本执行

2.1 写执行脚本:1010  vim hiveContext.sh/home/fantj/spark/bin/spark-submit \

--class com.fantj.bigdata.DataFormCreateCluster \--num-executors 1 \

--driver-memory 100m \

--executor-memory 100m \

--executor-cores 3 \

--files /home/fantj/hive/conf/hive-site.xml \

--driver-class-path /home/fantj/hive/lib/mysql-connector-java-5.1.17.jar \/home/fantj/wordcount.jar \

2.2 写json文件:1012  vim spark.json{"id":1,"name":"FantJ","age":18}

{"id":2,"name":"FantJ2","age":18}

{"id":3,"name":"FantJ3","age":18}

{"id":4,"name":"FantJ4","age":18}

{"id":5,"name":"FantJ5","age":18}

{"id":6,"name":"FantJ6","age":18}

2.3 上传到HDFS:1013  hadoop fs -put spark.json /spark

1014  hadoop fs -ls -R /sparkdrwxr-xr-x   - root supergroup          0 2018-07-31 05:00 /spark/out-rw-r--r--   3 root supergroup          0 2018-07-31 05:00 /spark/out/_SUCCESS

-rw-r--r--   3 root supergroup       1818 2018-07-31 05:00 /spark/out/part-00000-rw-r--r--   3 root supergroup        203 2018-07-31 19:34 /spark/spark.json

-rw-r--r--   3 root supergroup       1527 2018-07-30 23:12 /spark/spark.txt

2.4 执行脚本:1016  chmod +x hiveContext.sh

1017  ./hiveContext.sh......18/07/31 19:45:05 INFO scheduler.TaskSchedulerImpl: Removed TaskSet 1.0, whose tasks have all completed, from pool

18/07/31 19:45:05 INFO scheduler.DAGScheduler: ResultStage 1 (show at DataFormCreateCluster.java:22) finished in 0.059 s18/07/31 19:45:05 INFO scheduler.DAGScheduler: Job 1 finished: show at DataFormCreateCluster.java:22, took 0.134718 s

+---+---+------+|age| id|  name|+---+---+------+| 18|  1| FantJ|| 18|  2|FantJ2|| 18|  3|FantJ3|| 18|  4|FantJ4|| 18|  5|FantJ5|| 18|  6|FantJ6|+---+---+------+

root |-- age: long (nullable = true)

|-- id: long (nullable = true) |-- name: string (nullable = true)

18/07/31 19:45:05 INFO spark.SparkContext: Invoking stop() from shutdown hook

18/07/31 19:45:05 INFO handler.ContextHandler: stopped o.s.j.s.ServletContextHandler{/static/sql,null}

18/07/31 19:45:05 INFO handler.ContextHandler: stopped o.s.j.s.ServletContextHandler{/SQL/execution/json,null}

......

作者:PlayInJava

链接:https://www.jianshu.com/p/06f0afab55f0



推荐阅读
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 在Java Web服务开发中,Apache CXF 和 Axis2 是两个广泛使用的框架。CXF 由于其与 Spring 框架的无缝集成能力,以及更简便的部署方式,成为了许多开发者的首选。本文将详细介绍如何使用 CXF 框架进行 Web 服务的开发,包括环境搭建、服务发布和客户端调用等关键步骤,为开发者提供一个全面的实践指南。 ... [详细]
  • 在本文中,我们将为 HelloWorld 项目添加视图组件,以确保控制器返回的视图路径能够正确映射到指定页面。这一步骤将为后续的测试和开发奠定基础。首先,我们将介绍如何配置视图解析器,以便 SpringMVC 能够识别并渲染相应的视图文件。 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 在探讨如何在Android的TextView中实现多彩文字与多样化字体效果时,本文提供了一种不依赖HTML技术的解决方案。通过使用SpannableString和相关的Span类,开发者可以轻松地为文本添加丰富的样式和颜色,从而提升用户体验。文章详细介绍了实现过程中的关键步骤和技术细节,帮助开发者快速掌握这一技巧。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 利用爬虫技术抓取数据,结合Fiddler与Postman在Chrome中的应用优化提交流程
    本文探讨了如何利用爬虫技术抓取目标网站的数据,并结合Fiddler和Postman工具在Chrome浏览器中的应用,优化数据提交流程。通过详细的抓包分析和模拟提交,有效提升了数据抓取的效率和准确性。此外,文章还介绍了如何使用这些工具进行调试和优化,为开发者提供了实用的操作指南。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 本文介绍了如何利用ObjectMapper实现JSON与JavaBean之间的高效转换。ObjectMapper是Jackson库的核心组件,能够便捷地将Java对象序列化为JSON格式,并支持从JSON、XML以及文件等多种数据源反序列化为Java对象。此外,还探讨了在实际应用中如何优化转换性能,以提升系统整体效率。 ... [详细]
  • 针对MySQL Undo空间满载及Oracle Undo表空间溢出的问题,本文详细探讨了其原因与解决策略。首先,通过启动SQL*Plus并以SYS用户身份登录数据库,查询当前数据库的UNDO表空间名称,确认当前状态。接着,分析导致Undo空间满载的常见原因,如长时间运行的事务、频繁的更新操作等,并提出相应的解决方案,包括调整Undo表空间大小、优化事务管理、定期清理历史数据等。最后,结合实际案例,提供具体的实施步骤和注意事项,帮助DBA有效应对这些问题。 ... [详细]
  • 深入解析C#中app.config文件的配置与修改方法
    在C#开发过程中,经常需要对系统的配置文件进行读写操作,如系统初始化参数的修改或运行时参数的更新。本文将详细介绍如何在C#中正确配置和修改app.config文件,包括其结构、常见用法以及最佳实践。此外,还将探讨exe.config文件的生成机制及其在不同环境下的应用,帮助开发者更好地管理和维护应用程序的配置信息。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
author-avatar
KTone
敲一夜代码,流下两三行泪水,掏空四肢五体,六杯咖啡七桶泡面,还有八个测试九层审批,可谓十分艰难
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有