Hive
文章平均质量分 57
sparkexpert
大数据挖掘技术(人工智能)的爱好者
展开
-
Spark实现HIVE统计结果导入到HBase操作
由于HIVE更新的机制极其不适应SPARK环境,于是利用HBase来执行HIVE中某些统计结果的更新。首先要做的是实现Spark + Hive访问,得到RDD,再将这个RDD导入到HBase中操作。然而网上关于这一块目前资料还真很少。但是其原理总体上来说是非常简单的。步骤主要是两步:(1)开启hive连接器,实现spark + hive的访问,得到dataframe对象。原创 2015-12-31 11:34:54 · 4724 阅读 · 1 评论 -
spark 2.0.0与HIVE结合的测试
spark 2.0.0中,对hive的结合开发是否进行了改变,于是进行了如下测试。最大的变化就是没有什么HiveContext了。直接就是一个SparkSession。val spark = SparkSession .builder() .master("local[*]") .appName("Spark Hive Example")原创 2016-09-12 20:30:40 · 4721 阅读 · 0 评论 -
Hive在spark2.0.0启动时无法访问../lib/spark-assembly-*.jar: 没有那个文件或目录的解决办法
最近将整个架构升级到spark 2.0.0之后,发现一个问题,就是每次进行hive --service metastore启动的时候,总是会报一个小BUG。无法访问/home/ndscbigdata/soft/spark-2.0.0/lib/spark-assembly-*.jar: 没有那个文件或目录。而这一行究竟是怎么回事,网上没有任何有关的资料。没办法,只好一原创 2016-09-12 19:57:57 · 15595 阅读 · 2 评论 -
ERROR 2002 (HY000): Can't connect to local MySQL server 问题解决
由于网络IP重新进行切换,一下子发现之前的HIVE一直连接不上,一步步发现,原来问题在于MYSQL的问题。于是重新进入mysql,mysql -u ** -p,输入密码之后,发现了这个错误。ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.原创 2016-09-12 19:43:03 · 3374 阅读 · 1 评论 -
太多的.hive-stagingxxx文件的处理
跑一段时间的HIVE程序之后,偶尔打开对应的HDFS文件夹,才发现在其目录下,产生了太多的.hive-staging_hive_date-time_ XXX文件。仔细一看,才发现几乎每个HIVE的查询语句都会产生这样的一个文件,这种文件会随着时间积累不断增加。这也是前段时间造成HDFS目录到项的原因之一。查了网上的相关说明,也没有比较好的说明,可能这是基于任何一原创 2016-07-15 16:34:53 · 7430 阅读 · 0 评论 -
DataFrame registerTempTable(注册临时表)后Table Not Found问题的解决
将数据存成数据集的方式是实现数据各种操作非常有效的一种方式。也能够迅速实现数据的导入与导出。Spark DataFrame提供了registerTempTable这样的接口,可以将数据对象存成临时表,便于后续的各种查询操作等。如select, join等。以前都是直接从数据中读入数据,生成一个dataframe对象,都没有遇到 table not found的问题。然而今天原创 2016-04-21 10:29:11 · 20026 阅读 · 3 评论 -
Hive 插入数据时遇到Return Code 2问题的解决
正常情况下,估计很难遇到这个问题。但是也刚好都碰上了这样的问题。于是把解决过程记录一下。Hive运行成功之后,当输入select count(*) from XX或者插入数据时,居然碰到BUG。2016-04-14 12:31:56,199 Stage-1 map = 0%, reduce = 0%Ended Job = job_1460599682683_0原创 2016-04-15 08:20:06 · 15872 阅读 · 2 评论 -
Hive中文注释乱码问题的解决
在HIVE中建表的时候,有时候难免要表中文注释,然而如果不经过配置,会导致desc某个表名的时候,直接以?的方式返回。因此也来解决一下HIVE中文注释乱码的问题。由于HIVE的元数据是存在于MYSQL上的,因此需要在MYSQL上进行元数据的候。因此也来解决一下这个问题。当hive使用mysql作为元数据库的时候mysql的字符集要设置成latin1 defaul原创 2016-04-15 08:13:55 · 8346 阅读 · 0 评论 -
Spark RDD(DataFrame) 写入到HIVE的代码实现
在实际工作中,经常会遇到这样的场景,想将计算得到的结果存储起来,而在Spark中,正常计算结果就是RDD。而将RDD要实现注入到HIVE表中,是需要进行转化的。关键的步骤,是将RDD转化为一个SchemaRDD,正常实现方式是定义一个case class.然后,关键转化代码就两行。data.toDF().registerTempTable("tabl原创 2016-03-23 17:04:33 · 22798 阅读 · 1 评论 -
spark dataframe操作集锦(提取前几行,合并,入库等)
spark dataframe派生于RDD类,但是提供了非常强大的数据操作功能。当然主要对类SQL的支持。在实际工作中会遇到这样的情况,主要是会进行两个数据集的筛选、合并,重新入库。首先加载数据集,然后在提取数据集的前几行过程中,才找到limit的函数。而合并就用到union函数,重新入库,就是registerTemple注册成表,再进行写入到HIVE中。原创 2016-04-02 10:52:38 · 92003 阅读 · 1 评论 -
HIVE表中分区的删除
HIVE本身是不太支持更新的,要从其中删除某一行其实也是费劲的。不过HIVE本身还提供一种机制,可以删除其中的分区。只要某一条记录在某个分区中,就可以实现用个“转弯”的方式来实现,即先删除分区,再手动去掉这条记录,再导入到分区中。如首先查到某个表中有记录7904个, 用这个命令:ALTER TABLE shphonefeature DROP IF EXISTS原创 2016-03-31 11:01:04 · 60113 阅读 · 0 评论 -
scala Calendar中获取月份遇到“坑”
calendar.get(Calendar.MONTH) 月份是从0开始的 你设置是12 其实系统以为是1月,所以用0来表示1月,你如果想表示12月那就应该设置calendar.set(2011,11,31); 这样就会读出来是数字12 之前没有写过这样的函数,结果在HIVE里面查找分区,结果发现经常出错,其原因居然在于这个地方。后面直接+1就成功解决了。sca原创 2016-03-31 10:54:21 · 5607 阅读 · 0 评论 -
spark dataframe新增列的处理
往一个dataframe新增某个列是很常见的事情。然而这个资料还是不多,很多都需要很多变换。而且一些字段可能还不太好添加。不过由于这回需要增加的列非常简单,倒也没有必要再用UDF函数去修改列。利用withColumn函数就能实现对dataframe中列的添加。但是由于withColumn这个函数中的第二个参数col必须为原有的某一列。所以默认先选择了个ID。原创 2016-03-31 09:34:54 · 39969 阅读 · 3 评论 -
hive中常量列的添加和查询
在正常应用场景中,常常会从HIVE中直接获取某个DATAFRAME,这个dataframe除了与数据表中某些字段的提取,还往往会涉及到一些常量列的添加,用以如区分数据等场景。hive中原生提供了这样的功能。非常简单。如这个语句:select *, 1 a, 24 hours from **. 就实现了在某个表的原有字列后面添加a, hours两个字段。且这两个字段的数值都为原创 2016-03-30 20:46:06 · 7617 阅读 · 0 评论 -
spark sql hive批量导入文本文件
在很多情况下,会需要将批量生成(如按天生成的记录)导入到HIVE中。针对这种应用场景,进行实验。首先需要进行文件目录的遍历,借助SCALA强大的函数式编程能力,利用ARRAY中的MAP函数进行操作即可。如函数如下:def LoadIntoHive(sc:HiveContext,dir:String):Unit= { var cdrDi原创 2016-03-03 16:29:11 · 4117 阅读 · 0 评论 -
HIVE备份之批量导出所有的HIVE建表字段
在HIVE实际工程部署当中,经常会用到一些备份,其中有一项就是如何保存所有HIVE表的建表命令语句。当HIVE中表格特别多的情况下,如何批量进行存储呢。针对这个问题,网上没有任何相关的资源。不过从HIVE本身提供的语句是支持这个,只是需要批量处理。最基本的两个语句:show tables; show create tables XXX.于原创 2016-10-17 10:06:55 · 8746 阅读 · 1 评论