spark相关介绍-提取hive表(一)】的更多相关文章

本文环境说明 centos服务器 jupyter的scala核spylon-kernel spark-2.4.0 scala-2.11.12 hadoop-2.6.0 本文主要内容 spark读取hive表的数据,主要包括直接sql读取hive表:通过hdfs文件读取hive表,以及hive分区表的读取. 通过jupyter上的cell来初始化sparksession. 文末还有通过spark提取hdfs文件的完整示例 jupyter配置文件 我们可以在jupyter的cell框里面,对spar…
spark 2.4.3 spark读取hive表,步骤: 1)hive-site.xml hive-site.xml放到$SPARK_HOME/conf下 2)enableHiveSupport SparkSession.builder.enableHiveSupport().getOrCreate() 3) 测试代码 val sparkConf = new SparkConf().setAppName(getName) val sc = new SparkContext(sparkConf)…
首先说一下,这里解决的问题应用场景: sparksql处理Hive表数据时,判断加载的是否是分区表,以及分区表的字段有哪些?再进一步限制查询分区表必须指定分区? 这里涉及到两种情况:select SQL查询和加载Hive表路径的方式.这里仅就"加载Hive表路径的方式"解析分区表字段,在处理时出现的一些问题及解决作出详细说明. 如果大家有类似的需求,笔者建议通过解析Spark SQL logical plan和下面说的这种方式解决方案结合,封装成一个通用的工具. 问题现象 sparks…
本文处理的场景如下,hive表中的数据,对其中的多列进行判重deduplicate. 1.先解决依赖,spark相关的所有包,pom.xml spark-hive是我们进行hive表spark处理的关键. <dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.10</artifactId> <version…
知识点1:Spark访问HIVE上面的数据 配置注意点:. 1.拷贝mysql-connector-java-5.1.38-bin.jar等相关的jar包到你${spark_home}/lib中(spark2.0之后是${spark_home}/jars下),不清楚就全部拷贝过去 2.将Hive的配置文件hive-site.xml拷贝到${spark_home}/conf目录下 3.因为使用ThriftJDBC/ODBC Server访问spark SQL,所以要修改hive-site.xml文…
spark Hive表操作 之前很长一段时间是通过hiveServer操作Hive表的,一旦hiveServer宕掉就无法进行操作. 比如说一个修改表分区的操作 一.使用HiveServer的方式 val tblName = "hive_table" def dropPartitions(tblName: String): Unit = { val HIVE_SERVER = "jdbc:hive2://192.168.xx.xxx:10000" import ja…
package iie.hadoop.hcatalog.spark; import iie.udps.common.hcatalog.SerHCatInputFormat; import iie.udps.common.hcatalog.SerHCatOutputFormat; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.…
spark 读写hive表主要是通过sparkssSession 读表的时候,很简单,直接像写sql一样sparkSession.sql("select * from xx") 就可以了. 这里主要是写数据,因为数据格式有很多类型,比如orc,parquet 等,这里就需要按需要的格式写数据. 首先 , 对于特殊的格式这里就要制定 dataFrame.write.format("orc")的方式. 其次, 对于写入分区表有2种方式,insertInto 和saveA…
知识点1:创建关联Hbase的Hive表 知识点2:Spark访问Hive 知识点3:Spark访问与Hbase关联的Hive表 知识点1:创建关联Hbase的Hive表 两种方式创建,内部表和外部表 内部表,如果删除hive表,hbase表也会删除:不建议使用这种方式,大多数都是关联进行查询操作 外部表,如果删除hive表,hbase表不受影响: hive使用的还是存储在hbase中的数据. 这里创建外部表. CREATE EXTERNAL TABLE tdatafromhbase(key s…
[Spark][Hive][Python][SQL]Spark 读取Hive表的小例子$ cat customers.txt 1 Ali us 2 Bsb ca 3 Carls mx $ hive hive> > CREATE TABLE IF NOT EXISTS customers( > cust_id string, > name string, > country string > ) > ROW FORMAT DELIMITED FIELDS TERMI…
1. 软件版本 软件 版本 Spark 1.6.0 Hive 1.2.1 2. 场景描述 在使用Spark时,有时需要存储DataFrame数据到Hive表中,一般的存储方式如下: // 注册临时表 myDf.registerTempTable("t1") // 使用SQLContext从临时表创建Hive表 sqlContext.sql("create table h1 as select * from t1") 在DataFrame中存储一般的数据类型,比如Do…
一 环境: spark-: hive-; scala-; hadoop--cdh-; jdk-1.8; mongodb-2.4.10; 二.数据情况: MongoDB数据格式{    "_id" : ObjectId("5ba0569cafc9ec432bd310a3"),    "id" : 7,    "name" : "7mongoDBi am using mongodb now",    "…
使用spark将内存中的数据写入到hive表中 hive-site.xml <?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Licensed to the Apache Software…
1.使用sqoop创建表并且指定对应的hive表中的字段的数据类型,同时指定该表的分区字段名称 sqoop create-hive-table --connect "jdbc:oracle:thin:@192.168.13.1:1521/test" --username root --password 12345 --table test --hive-table myhive5 --hive-partition-key partition_time --map-column-hive…
Hive 表分区 Hive表的分区就是一个目录,分区字段不和表的字段重复 创建分区表: create table tb_partition(id string, name string) PARTITIONED BY (month string) row format delimited fields terminated by '\t'; 加载数据到hive分区表中 方法一:通过load方式加载 load data local inpath '/home/hadoop/files/namein…
hadoop 相关介绍 hadoop的首页有下面这样一段介绍.对hadoop是什么这个问题,做了简要的回答. The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing. The Apache Hadoop software library is a framework that allows for the distributed processi…
本案例使用的数据均来源于Oracle自带的emp和dept表 创建表 语法: CREATE [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED…
前两天工作需求,要通过给的几个Oracle的视图把数据入到hive库中,很遗憾,使用的华为云平台的集区环境中并没有sqoop1,当然也并没有sqoop2,所以,想到的解决方案是使用spark读取Oracle在写入到hive表中: 1.首先,沟通了一个星期的数据库接口,是的,就是一个星期:拿到的结果为 10.111.50.7:1521/DB2,当然,数据库ip和服务名是我乱写的一个,格式是这样的: 还附带了一条查询语句:select * from jzwh.ALARMS 就完了,这就完了?事实上并…
类似于Oracle的分析表,Hive中也提供了分析表和分区的功能,通过自动和手动分析Hive表,将Hive表的一些统计信息存储到元数据中. 表和分区的统计信息主要包括:行数.文件数.原始数据大小.所占存储大小.最后一次操作时间等: 新表的统计信息 对于一个新创建的表,默认情况下,如果通过INSERT OVERWRITE的方式插入数据,那么Hive会自动将该表或分区的统计信息更新到元数据. 有一个参数来控制是否自动统计,hive.stats.autogather,默认为true. 举例来说: 先创…
阅读目录 序 创建表 查看表 修改表 删除表 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一篇,我们介绍了Hive和对其进行了安装,下面我们就初步的使用hive进行讲解.   下面我们开始介绍hive的创建表,修改表,删除表等. 创建表 一:Hive Client 在Terminal输入hive命令需要安装Hive Client. 二:进入 切换用户,进入hive su h…
shell里面对日期的操作 #!/bin/bash THIS_FROM=$(date +%Y%m%d -d "-7 day") THIS_TO=$(date +%Y-%m-%d -d "-1 day") LAST_FROM=$(date +%Y-%m-%d -d "$THIS_FROM -1 year") LAST_TO=$(date +%Y-%m-%d -d "$THIS_TO -1 year") echo $THIS_FR…
前言 在搭建大数据Hadoop相关的环境时候,遇到很多了很多错误.我是个喜欢做笔记的人,这些错误基本都记载,并且将解决办法也写上了.因此写成博客,希望能够帮助那些搭建大数据环境的人解决问题. 说明: 遇到的问题以及相应的解决办法是对于个人当时的环境,具体因人而异.如果碰到同样的问题,本博客的方法无法解决您的问题,请先检查环境配置问题. Hadoop伪分布式相关的问题 1,FATAL conf.Configuration: error parsing conf hdfs-site.xml 原因:…
背景:根据业务需要需要把60张主子表批量入库到hive表. 创建测试数据: def createBatchTestFile(): Unit = { to ) { val sWriter = new PrintWriter(new File("D:\\server_" + layer + ".txt")) val nWriter = new PrintWriter(new File("D:\\neighour_" + layer + ".…
hive表的源文件存储格式有几类: 1.TEXTFILE 默认格式,建表时不指定默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理.源文件可以直接通过hadoop fs -cat 查看 2.SEQUENCEFILE 一种Hadoop API提供的二进制文件,使用方便.可分割.可压缩等特点. SEQUENCEFILE将数据以<key,value>的形式序列化到文件中.序列化和反序列化使用Hadoop 的标准的Writable 接口实现.key为空,用value 存放实际的值,…
数据做压缩和解压缩会增加CPU的开销,但可以最大程度的减少文件所需的磁盘空间和网络I/O的开销,所以最好对那些I/O密集型的作业使用数据压缩,cpu密集型,使用压缩反而会降低性能. 而hive中间结果是map输出传给reduce,所以应该使用低cpu开销和高压缩效率,一般最好使用snappy. ------------------------------------------------------------------------------ hive表的存储格式有(参见http://bl…
常用格式 textfile 需要定义分隔符,占用空间大,读写效率最低,非常容易发生冲突(分隔符)的一种格式,基本上只有需要导入数据的时候才会使用,比如导入csv文件: ROW FORMAT DELIMITED FIELDS TERMINATED BY '\u0001' LINES TERMINATED BY '\n' STORED AS TEXTFILE json hive3.0后官方支持json格式,之前需要使用第三方,导入jar,http://www.congiu.net/hive-json…
在使用Hive的过程中,复制表结构和数据是很常用的操作,本文介绍两种复制表结构和数据的方法. 1.复制非分区表表结构和数据 Hive集群中原本有一张bigdata17_old表,通过下面的SQL语句可以将bigdata17_old的表结构和数据复制到bigdata17_new表: CREATE TABLE bigdata17_new AS SELECT * FROM bigdata17_old; 如果是分区表,则必须使用like关键字复制表结构,包括分区,然后用insert语句将老表的数据插入新…
Hive 表类型简述   表类型一.管理表或内部表Table Type:  MANAGED_TABLE example: create table  Inner(id int,name string,description string) //用来指定原文件的列分隔符row  format delimited fields terminated by '\t'; 表类型二.外部表(原始数据表多建于外部表) example: create external table extertab(nobo…
hive表增量抽取到oracle数据库的通用程序(一) 前一篇介绍了java程序的如何编写.使用以及引用到的依赖包.这篇接着上一篇来介绍如何在oozie中使用该java程序. 在我的业务中,分为两段: 1. 查询hive表中的信息,通过oozie可以设置不同的变量作为增量查询的条件. 2. 将hive查询到的信息写入到oracle中. 对应oozie中的workflow文件如下: <?xml version="1.0" encoding="UTF-8"?>…
hive表增量抽取到oracle数据库的通用程序(二) sqoop在export的时候 只能通过--export-dir参数来指定hdfs的路径.而目前的需求是需要将hive中某个表中的多个分区记录一次性导出到oracle数据库中,由于不支持通配符,又不想设置多个workflow.为了替代蹩脚的sqoop,准备使用java来开发通用包来替代这个导出功能. 通过给java程序提供具体的参数,完成数据的拉取. 为了与sqoop传参方式一致,使用了--开头(在java程序中其实是将--过滤掉了),相关…