hive读取orc文件行数

hive读取orc文件行数,第1张

hive读取orc文件行数:避免全分区字段是扮首动态的,必须有至少一个分区字段是指定有值的。

Hive的insert语句能够从查询语句中获取数据,并同时将数据Load到目标表中御顷。现在假定有一个已有数据的表staged_employees(雇员信息全量表),所属国家cnty和所属州st是该表的两个属性,我们做个试验将该表中的数据查询出来插入到另一个表employe。

ENT:按ENTER键一下:

\^:代表CTRL键,如要按组合键如CTRL+S:\^S;(其他如此类推)。

\%:代表ALT键,如要按组合键如ALT+F:\%F;(其他如此类推)。

\{}:代表按下键盘上功能键,之于要什么功厅拆数能键就在{}中写,如要按F1键:\{F1};向下的箭头键:\{DOWN}(其他如此类推)。

\^{F4}:代表按下Ctrl+F4键。

*ML(684,120):代表按下鼠标左键,括号中的数字代表鼠标在屏幕上的坐标;(注:我们可以在主窗口把鼠标的位置放好,然后通过ALT+TAB键的 *** 作切换到DATALOAD的窗口按下*+M+L就可以比较精确地定位鼠标)。

1、为了让Spark能够连接到Hive的原有数据仓库,我们需要将Hive中的hive-site.xml文件拷贝到Spark的conf目录下,这样就可以通过这个配置文件找到Hive的元数据以及数据存放。

在这里由于我的Spark是自动安装和部署的,因此需要知道CDH将hive-site.xml放在哪里。经过摸索。该文件默认所在的路径是:/etc/hive/conf 下。

同理,spark的conf也是在/etc/spark/conf。

此时,如上所述,将对应的hive-site.xml拷贝到spark/conf目录下即可纯悄埋

如果Hive的元数据存放在Mysql中,我们还需要准备好Mysql相关驱动,比如:mysql-connector-java-5.1.22-bin.jar。

2、编写测试代码

val conf=new SparkConf().setAppName("Spark-Hive").setMaster("local")

val sc=new SparkContext(conf)

//create hivecontext

val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)

sqlContext.sql("CREATE TABLE IF NOT EXISTS src (key INT, value STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ") //这里需要注意数据的间隔符

sqlContext.sql("LOAD DATA INPATH '/user/liujiyu/spark/kv1.txt' INTO TABLE src ")

sqlContext.sql(" SELECT * FROM jn1").collect().foreach(println)

sc.stop()

3、运大下面列举一下出现的问题:

(1)如果没有将hive-site.xml拷贝到spark/conf目录下,会出现:

分析:从错误提示上面就知道,spark无法知道hive的元数据的位置,所以就无法实例化对应的client。

解决的办法就是必须将hive-site.xml拷贝到spark/conf目录做蚂下

(2)测试代码中没有加sc.stop会出现如下错误:

ERROR scheduler.LiveListenerBus: Listener EventLoggingListener threw an exception

java.lang.reflect.InvocationTargetException

在代码最后一行添加sc.stop()解决了该问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8156743.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存