Impala 查询导出到文本,本地系统
Hive查詢導(dǎo)出到文本使用
insert overwrite local directory在Impala中不支持,Impala使用,注意--output_delimiter與-B 一同使用,否則不生效
impala-shell -q "select birthday,b.uid from dw_crawler.bsl_weibo_article a,ods_xxx.xxx b where b.uid = substr(a.uid,7) and b.birthday is not null;" -B --output_delimiter="\t" -o birthday.txtimpala-shell相關(guān)參數(shù)說(shuō)明(https://my.oschina.net/weiqingbin/blog/190929):
| -B or --delimited | 導(dǎo)致使用分隔符分割的普通文本格式打印查詢結(jié)果。當(dāng)為其他 Hadoop 組件生成數(shù)據(jù)時(shí)有用。對(duì)于避免整齊打印所有輸出的性能開(kāi)銷有用,特別是使用查詢返回大量的結(jié)果集進(jìn)行基準(zhǔn)測(cè)試的時(shí)候。使用?--output_delimiter 選項(xiàng)指定分隔符。使用 -B 選項(xiàng)常用于保存所有查詢結(jié)果到文件里而不是打印到屏幕上。在?Impala 1.0.1 中添加 |
| --print_header | 是否打印列名。整齊打印時(shí)是默認(rèn)啟用。同時(shí)使用 -B 選項(xiàng)時(shí),在首行打印列名 |
| -o?filename?or --output_file?filename | 保存所有查詢結(jié)果到指定的文件。通常用于保存在命令行使用 -q 選項(xiàng)執(zhí)行單個(gè)查詢時(shí)的查詢結(jié)果。對(duì)交互式會(huì)話同樣生效;此時(shí)你只會(huì)看到獲取了多少行數(shù)據(jù),但看不到實(shí)際的數(shù)據(jù)集。當(dāng)結(jié)合使用 -q 和 -o 選項(xiàng)時(shí),會(huì)自動(dòng)將錯(cuò)誤信息輸出到 /dev/null(To suppress these incidental messages when combining the?-q?and?-o?options, redirect?stderr?to?/dev/null)。在 Impala 1.0.1 中添加 |
| --output_delimiter=character | 當(dāng)使用 -B 選項(xiàng)以普通文件格式打印查詢結(jié)果時(shí),用于指定字段之間的分隔符(Specifies the character to use as a delimiter between fields when query results are printed in plain format by the?-B?option)。默認(rèn)是制表符 tab ('\t')。假如輸出結(jié)果中包含了分隔符,該列會(huì)被引起且/或轉(zhuǎn)義(?If an output value contains the delimiter character, that field is quoted and/or escaped)。在 Impala 1.0.1 中添加 |
| -p or --show_profiles | 對(duì) shell 中執(zhí)行的每一個(gè)查詢,顯示其查詢執(zhí)行計(jì)劃 (與?EXPLAIN 語(yǔ)句輸出相同) 和發(fā)生低級(jí)故障(low-level breakdown)的執(zhí)行步驟的更詳細(xì)的信息 |
| -h or --help | 顯示幫助信息 |
| -i?hostname?or --impalad=hostname | 指定連接運(yùn)行 impalad 守護(hù)進(jìn)程的主機(jī)。默認(rèn)端口是 21000。你可以連接到集群中運(yùn)行 impalad 的任意主機(jī)。假如你連接到 impalad 實(shí)例通過(guò)?--fe_port 標(biāo)志使用了其他端口,則應(yīng)當(dāng)同時(shí)提供端口號(hào),格式為 hostname:port |
| -q?query?or --query=query | 從命令行中傳遞一個(gè)查詢或其他 shell 命令。執(zhí)行完這一語(yǔ)句后 shell 會(huì)立即退出。限制為單條語(yǔ)句,可以是?SELECT,?CREATE TABLE,?SHOW TABLES, 或其他 impala-shell 認(rèn)可的語(yǔ)句。因?yàn)闊o(wú)法傳遞 USE 語(yǔ)句再加上其他查詢,對(duì)于 default 數(shù)據(jù)庫(kù)之外的表,應(yīng)在表名前加上數(shù)據(jù)庫(kù)標(biāo)識(shí)符(或者使用 -f 選項(xiàng)傳遞一個(gè)包含 USE 語(yǔ)句和其他查詢的文件) |
| -f?query_file?or --query_file=query_file | 傳遞一個(gè)文件中的 SQL 查詢。文件內(nèi)容必須以分號(hào)分隔 |
| -k or --kerberos | 當(dāng)連接到 impalad 時(shí)使用 Kerberos 認(rèn)證。如果要連接的 impalad 實(shí)例不支持?Kerberos,將顯示一個(gè)錯(cuò)誤 |
| -s?kerberos_service_name?or --kerberos_service_name=name | Instructs?impala-shell?to authenticate to a particular?impalad?service principal. 如何沒(méi)有設(shè)置 kerberos_service_name?,默認(rèn)使用 impala。如何啟用了本選項(xiàng),而試圖建立不支持?Kerberos 的連接時(shí),返回一個(gè)錯(cuò)誤(If this option is used in conjunction with a connection in which Kerberos is not supported, errors are returned) |
| -V or --verbose | 啟用詳細(xì)輸出 |
| --quiet | 關(guān)閉詳細(xì)輸出 |
| -v or --version | 顯示版本信息 |
| -c | 查詢執(zhí)行失敗時(shí)繼續(xù)執(zhí)行 |
| -r or --refresh_after_connect | 建立連接后刷新 Impala 元數(shù)據(jù),與建立連接后執(zhí)行?REFRESH?語(yǔ)句效果相同 |
| -d?default_db?or --database=default_db | 指定啟動(dòng)后使用的數(shù)據(jù)庫(kù),與建立連接后使用?USE?語(yǔ)句選擇數(shù)據(jù)庫(kù)作用相同,如果沒(méi)有指定,那么使用 default 數(shù)據(jù)庫(kù) |
| -l | 啟用 LDAP 認(rèn)證 |
| -u | 當(dāng)使用 -l 選項(xiàng)啟用 LDAP 認(rèn)證時(shí),提供用戶名(使用短用戶名,而不是完整的 LDAP 專有名稱(distinguished name)) ,shell 會(huì)提示輸入密碼 |
?
總結(jié)
以上是生活随笔為你收集整理的Impala 查询导出到文本,本地系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: maven 打包报错 surefire-
- 下一篇: 云计算的理解