Spark-submit问题、Hive表load空值问题、jar Classnotfount和自定义UDF的使用以及常见的问题

原创 2018年04月15日 23:56:43

一、Hive

hive是数据仓库,建立在hdfs生态圈的上层架构,hive的数据可以与mysql hbase 进行转换

1.使用mysql导入数据到hive load 表发现值为null的问题

(1)先检查sqoop 导入时候有没有指定分隔符 

 --fields-terminated-by '#'这一句是不是添加了。默认是逗号是分隔符

切记指定分隔符只能为单字符,推荐\t 和hive默认的\001 前提是数据里面不可能包含此字符

(2)如果hive中的表与sqoop导入指定的分隔符一致 仍发现一大堆null值 这时候 就要注意了。

很有可能是导入的数据中有此分隔符 导致数据错位直接报null

(3)以上如果还没有发现问题,请先sqoop上去一点数据进行测试 上50070 下载这个blk

打开nodepad++查看导出的数据是不是你要的格式 不要用那些乱七八糟的符号 比如⭐。

这一步缺认后数据没有问题,那么只能是你所导入的数据中包含你所用的分隔符 这个可能了。。。

比较笨的解决办法 :1先不用包含的分隔符进行操作2自定义UDF 对其进行操作split不需要的字符或者字节

import org.apache.hadoop.hive.ql.exec.UDF;

public class  evaluat(String str){

val s1="";

if(str !=null && str!=“”)

   if( str.split("字符").lenth>1){

    for(int a=0 ;a<str.split("字符").lenth;a++){

    s1+=str.split("字符").get(a)}

    return s1;

}}这里大概的逻辑是这样就不做优化了根据自己的业务来

return str;

切记 打好jar包 用zip工具删除MIN文件里面的 *.DSA 和 *.SF文件 要不jar包无法运行的

hive-shell

add jar 你的jar包目录 (本地)

create temporary function <函数名> '你的那个UDF类的路径' 举例com.hive.udf

使用的话就在select 语句中 函数名(值)就可以了

一切的报错请仔细检查错误信息 和字段对应的问题 大多都是不细心字段对不上而产生的错误

千万不要把存数据的mysql 和hive的mysql用同一台机器你会后悔的

 二、spark jar包 classnotfound

常见问题 1.我用eclipse打jar包 就可以正常运行,到idea 里面写打jar包怎么就不行(麻烦删除jar 文件里的所有DSA 和SF文件 )这些是记录类的加载信息的  我们不需要 --class 参数可以指定 有了这个反而找不到

2.jar包的存放地址 请放在本地 丢到集群也可以 但记得路径要写对 复制粘贴代码的时候记得吧packect 换成正确的,有一次我就忘了删  然后copyname 怎么都不对。后来发现 这个packect 会影响到classname的

3.请核对scala版本和java的版本 对不上号 的会有冲突 。

4.比较常见也是最愚蠢的问题。。class  包 路径名字打错了。。请检查一遍

hive面试问题

hive面试问题
  • high2011
  • high2011
  • 2016-06-06 13:51:02
  • 4662

Hive面试题—理清hive应用思路

Hive面试题—理清hive应用思路 问题:有一张很大的表:TRLOG该表大概有2T左右。 [sql] view plaincopy TRLOG:  ...
  • baolibin528
  • baolibin528
  • 2015-07-06 14:29:50
  • 3119

Hive自定义UDF的JAR包加入运行环境的方法

Hive开发udf函数打包jar文件后,需将jar文件放入hive的运行环境,方法有三。 先将http://blog.csdn.net/fjssharpsword/article/details/...
  • fjssharpsword
  • fjssharpsword
  • 2017-04-20 16:55:47
  • 6142

Hive添加自定义UDF函数

1 编写UDF类 以简单的处理单个字段的UDF函数为例,开发自定义UDF函数需要继承’org.apache.hadoop.hive.ql.exec.UDF’类. 可以通过Maven添加,pom文件...
  • liam08
  • liam08
  • 2016-05-04 06:36:30
  • 4411

hive大数据数据倾斜原因与解决方案总结

在做Shuffle阶段的优化过程中,遇到了数据倾斜的问题,造成了对一些情况下优化效果不明显。主要是因为在Job完成后的所得到的Counters是整个Job的总和,优化是基于这些Counters得出的平...
  • kexin_010
  • kexin_010
  • 2016-12-18 17:50:09
  • 1028

hive中添加自定义udf udaf udtf等函数的jar文件的三种方法

在开发了hive的udf udaf udtf函数的jar文件后,需要将jar文件放入hive的环境中才可以使用。可以通过以下三种方法加入: 1.  使用add jar path/test.jar;方...
  • jiedushi
  • jiedushi
  • 2013-03-03 22:29:59
  • 2910

利用eclipse编写自定义hive udf函数

在做日志分析的过程中,用到了hadoop框架中的hive,不过有些日志处理用hive中的函数处理显得力不从心,就需要用udf来进行扩展处理了 1  在eclipse中新建java project...
  • wisgood
  • wisgood
  • 2013-12-07 12:12:17
  • 1540

Hive中添加自定义UDF,UDAF,UDTF等函数jar文件的三种方式

在开发了Hive的UDF、UDAF、UDTF等函数打成jar文件后,需要把jar文件放入Hive的环境中才可以使用。可以通过以下三种方式加入: 1:使用 add jar path/test.jar ...
  • lzm1340458776
  • lzm1340458776
  • 2015-01-30 18:49:33
  • 2481

自定义hive永久函数详细步骤

自定义hive永久函数详细步骤 需求原因: 本公司有部门需要,hive本身提供一个nvl的函数,但是该函数只对null值起作用,现在的需求是不只是对null起作用,对“”这样的空值也要...
  • zhongbaolin
  • zhongbaolin
  • 2016-02-11 10:47:30
  • 3135

Hive自定义UDF

Hive是一种构建在Hadoop上的数据仓库,Hive把SQL查询转换为一些列在Hadoop集群上运行的MapReduce作业,是MapReduce更高层次的抽象,不用编写具体的MapReduce方法...
  • lzm1340458776
  • lzm1340458776
  • 2015-01-30 20:05:17
  • 1356
收藏助手
不良信息举报
您举报文章:Spark-submit问题、Hive表load空值问题、jar Classnotfount和自定义UDF的使用以及常见的问题
举报原因:
原因补充:

(最多只允许输入30个字)