hive的数据导入与数据导出(本地,云hdfs),load加载

1数据导入--------------

CREATE EXTERNAL TABLE wizad_mdm_dev_lmj_edition_20141120 (

cookie_id STRING,

guid STRING

) ROW FORMAT DELIMITED

FIELDS TERMINATED BY ‘,‘

LINES TERMINATED BY ‘\n‘

stored as textfile

LOCATION ‘/user/wizad/test/lmj/edition_compare/‘;

2join(只接受等值)后的结果入表------------------------------------

CREATE TABLE wizad_mdm_dev_lmj_edition_result as

select *

from  wizad_mdm_dev_lmj_20141120 as w

JOIN wizad_mdm_main as a ON (a.rowkey = w.guid);

======================================================================

3:hbase上数据导入失败(原因:)

下载到本地处理。设置scan时间加大,大表放最后。

结果导出到本地‘/home/wizad/lmj/‘:

SET mapred.job.queue.name=queue3;

SET hbase.client.scanner.caching=5000;

SET hbase.zookeeper.quorum=datanode06,datanode07,datanode08;

SET zookeeper.znode.parent=/hbase;

set hbase.regionserver.lease.period=180000;

INSERT OVERWRITE LOCAL DIRECTORY ‘/home/wizad/lmj/‘

ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,‘

select cookie_id,rowkey,fixeddim_map

from wizad_mdm_main_from_hbase as a JOIN wizad_mdm_dev_lmj_edition_20141120 as w

ON (w.guid = a.rowkey);

---------------------------------------------------------

SET mapred.job.queue.name=queue3;

SET hbase.client.scanner.caching=5000;

SET hbase.zookeeper.quorum=datanode06,datanode07,datanode08;

SET zookeeper.znode.parent=/hbase;

set hbase.regionserver.lease.period=180000;

CREATE TABLE wizad_mdm_dev_lmj_edition_result as

select cookie_id,rowkey,fixeddim_map

from wizad_mdm_main_from_hbase as a JOIN wizad_mdm_dev_lmj_edition_20141120 as w

ON (w.guid = a.rowkey);

========================================

select count(*) from wizad_mdm_dev_lmj_edition_result;14638

create TABLE wizad_mdm_dev_lmj_edition_insterest as

select cookie_id,rowkey,fixeddim_key,fixeddim_value

from wizad_mdm_dev_lmj_edition_result

LATERAL VIEW explode(fixeddim_map) my_t1 AS fixeddim_key,fixeddim_value

WHERE (fixeddim_key like ‘interest%‘);

-----------------------------------------

select count(*) from wizad_mdm_dev_lmj_edition_insterest;15331

INSERT OVERWRITE table wizad_mdm_dev_lmj_edition_insterest

select cookie_id,rowkey,fixeddim_key,fixeddim_value

from wizad_mdm_dev_lmj_edition_result

LATERAL VIEW explode(fixeddim_map) my_t1 AS fixeddim_key,fixeddim_value

WHERE (fixeddim_key like ‘interest%‘);

输出到hdfs上(本地用local DIRECTORY),不能指定列的分隔符,语句ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,‘ 报错不能识别。

INSERT OVERWRITE DIRECTORY ‘/user/wizad/tmp/mytest‘

select * from wizad_mdm_dev_lmj_edition_insterest

hive在hdfs上,默认使用^A作为分隔符,其对应着001。这样的数据在pig中无法读入,用‘\001‘或者‘\\001‘或者‘^A‘都无法读入。

解决办法:作为一个列整体读入后,在用STRSPLIT分隔按‘\\001‘(使用‘^A‘无效),可以返回一个元组类似((a,b)),如下pig

%default interestFlie /user/wizad/tmp/mytest/*

--无效interest_data = LOAD ‘$interestFlie‘ USING PigStorage(‘\\001‘)

--无效interest_data = LOAD ‘$interestFlie‘ USING PigStorage(‘^A‘)

interest_data = LOAD ‘$interestFlie‘

AS(cookie_id:chararray

--   guid:chararray,

--   dimkey :chararray,

--   dimvalue:chararray

);

test2 = foreach interest_data generate STRSPLIT(cookie_id,‘\\001‘);

DUMP res;

describe res;

结果:result结构: {(null)}

((B2BEF56E09EC115456E221,352751019523267,interest_11,161))

((B2BEF56E09EC115456E221,352751019523267,interest_13,102))

((EC15860E09D5EA545700E9,352751019523267,interest_11,161))

((EC15860E09D5EA545700E9,352751019523267,interest_13,102))

((daca0487-5424ef1a0dc3fa-11535481,352751019523267,interest_4,61))

((daca0487-5424ef1a0dc3fa-11535481,352751019523267,interest_21,21))

((daca0487-5424ef1a0dc3fa-11535481,352751019523267,interest_11,161))

((daca0487-5424ef1a0dc3fa-11535481,352751019523267,interest_13,102))

全路径也不行。

INSERT OVERWRITE DIRECTORY ‘hdfs://namenode/user/wizad/tmp/interest2/‘

ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,‘

select * from wizad_mdm_dev_lmj_edition_insterest

但导出到本地,可以指定列分隔符

INSERT OVERWRITE local DIRECTORY ‘/home/wizad/lmj/inserest2‘

ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,‘

select * from wizad_mdm_dev_lmj_edition_insterest

hive -e ‘use wizad;

select * from wizad_mdm_dev_lmj_edition_insterest;‘>> mytest

查询结果使用\t作为列分隔符,mytest中

3531 3631 3730 3631 3931 3635 3436 0969  51617061916546.i

vim中16进制(%!xxd)两位对应一个字符,看到"."对应的09,在asii码表中09,就是tab制表符

时间: 2024-11-08 18:14:26

hive的数据导入与数据导出(本地,云hdfs),load加载的相关文章

C#变成数据导入Excel和导出Excel

excel 基础 •整个excel 表格叫工作表:workbook:工作表包含的叫页:sheet:行:row:单元格:cell. •excel 中的电话号码问题,看起来像数字的字符串以半角单引号开头就没问题了. •使用区域(usedrange):用excel 表的时候不一定是从最左上角的单元格开始用,为了减小文件尺寸,有使用区域的概念,excel 只存储使用区域. 程序处理excel 的技术 •ole automation:程序启动一个excel 进程,然后和excel 进程进行通讯来进行exc

MySQL 索引、数据导入、数据导出

索引 1.定义:对数据库表的一列或多列的值进行排序的一种结构(Btree方式) 2.优点:加快数据检索速度 3.缺点:占用物理存储空间:当对表中数据更新时,索引需要动态维护,降低数据维护速度4.索引示例 1.开启运行时间检测 :set profiling=1; 2.执行查询语句 select name from t1 where name="lucy99999"; 3.查看执行时间 show profiles; 4.在name字段创建索引 create index name on t1

(转)Unity 导出XML配置文件,动态加载场景

参考:http://www.xuanyusong.com/archives/1919 http://www.omuying.com/article/48.aspx 主要功能: 1.导出场景的配置文件 2.导出当前场景中资源的AssetBundle 3.客户端从服务器获取配置文件 4.解析配置文件,并根据配置文件下载AssetBundle 5.实例化并还原场景 1.场景设置:将需要导出的场景资源设置为预设 2.将场景配置导出为XML文件 [code]csharpcode: using UnityE

Java导入package编译后运行时提示无法加载主类的解决办法

Java代码中通过package导入包后,用命令行编译可以成功,但是运行时提示无法加载主类,这时候可以把编译后的class文件放在导入包的上一层文件夹,然后用 java 包名.类名 的命令形式运行 参考链接:点击这里 原文地址:https://www.cnblogs.com/excellent-ship/p/9134994.html

Jquery的load加载本地文件出现跨域错误的解决方案

如果用原生的AJAX是加载本地文件就不会出现错误.当然,这个jquery的load放在服务器上通过http加载还是支持的.也有例外比如在firefox和ie浏览器使用$.ajax加载本地html或txt文件时,不会报错. 当其他浏览器控制台弹出下面报错,表明这个不支持跨域浏览本地文件: Access to XMLHttpRequest at 'file:///F:/%E4%BB%A3%E7%A0%81/Jquery/a.txt' from origin 'null' has been block

devexpress 数据导入(gridcontrol 导出 csv)

// 1.gridcontrol 导出 csv: DataTable dtbNew = new DataTable(); dtbNew.Columns.Add("Checkbox", Convert.ToDecimal(1).GetType()); dtbNew.Columns.Add("Seq"); dtbNew.Columns.Add("Test"); dtbNew.Columns.Add("Test2"); dtbNew

c# SqlBulkCopy实现批量从数据集中把数据导入到数据中

今天遇到了一个导入类第一次见 SqlBulkCopy 可以实现从一个数据集导入到数据库中的表中 本来想从数据集中一条条遍历insert到库中 有了这个后发现: 只在把表与数据集的列做一下对应关系,再走一个WriteToServer()方法就全进库里了代码如下(con一定要open()): using (SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=123;database=oa")) { con.Open(); u

使用 RxJava+Retrofit进行数据请求,并放在RecycleView中使用fresco加载图片

首先是依赖: compile 'com.squareup.retrofit2:retrofit:2.0.1' compile 'com.squareup.retrofit2:converter-gson:2.0.1' compile 'com.squareup.retrofit2:adapter-rxjava:2.0.1' compile 'io.reactivex:rxandroid:1.1.0' compile 'com.squareup.okhttp3:logging-intercepto

QlikView实现部分加载数据的功能(Partial Load)

问题背景: 一直很想不通,公司花了N多钱请了一帮QlikView的Consultant做出来的solution竟然没有涉及Reload的部分,以至于每次刷新数据都需要刷新整个Data Model,之前和部门同事讨论的时候我还信誓旦旦的说QlikView就只能这样了,找不到方法只将新数据刷新到Data Model中而不用重新load之前已经在Memory里面的数据. 幸而今天一位朋友提到了Add Load中的Partial Load,于是便查了一个小时的Google,经过回来试验之后,豁然开朗了,