ImpalaShell是一款基于Apache Impala的命令行客户端,可以用来执行SQL查询,并将结果导出到文本文件中。在导出数据时,ImpalaShell会将字符串值用双引号引起来,这样会影响后续的数据处理。因此,我们需要去除这些双引号。
要去除ImpalaShell导出数据中的双引号,有两种方法。
1. 使用sed命令: sed 's/\"//g' filename > newfilename 2. 使用awk命令: awk -F\" '{print $2}' filename > newfilename
其中sed命令是一种流编辑器(stream editor),它能够识别并替换文本中的特定字符串。上面的代码表明,我们希望将文件filename中所有的双引号“”都替换为空字符串“”。而awk命令是一种功能强大的文本分析工具(text processing utility) ,它能够根据特定字符将文本分割成若干部分。上面的代码表明我们希望将文件filename中所有内容都根据双引号进行分割(-F\" ),然后打印出其中的第二部分内容($2)。
在前面的章节中,我们已经看到了使用cloudera及其体系结构安装Impala。
本章介绍如何启动Impala Shell和shell的各种选项。
Impala shell的命令分为一般命令,查询特定选项以及表和数据库特定选项,如下所述。
打开cloudera终端,以超级用户身份登录,然后键入cloudera作为密码,如下所示。
[cloudera@quickstart ~]$ su Password: cloudera [root@quickstart cloudera]#
通过键入以下命令启动Impala shell -
[root@quickstart cloudera] # impala-shell Starting Impala Shell without Kerberos authentication Connected to quickstart.cloudera:21000 Server version: impalad version 2.3.0-cdh5.5.0 RELEASE (build 0c891d79aa38f297d244855a32f1e17280e2129b) ********************************************************************* Welcome to the Impala shell. Copyright (c) 2015 Cloudera, Inc. All rights reserved. (Impala Shell v2.3.0-cdh5.5.0 (0c891d7) built on Mon Nov 9 12:18:12 PST 2015) Want to know what version of Impala you're connected to? Run the VERSION command to find out! ********************************************************************* [quickstart.cloudera:21000] >
Impala的通用命令解释如下 -
Impala shell的help命令提供了Impala中可用的命令的列表 -
[quickstart.cloudera:21000] > help; Documented commands (type help <topic>): ======================================================== compute describe insert set unset with version connect explain quit show values use exit history profile select shell tip Undocumented commands: ========================================= alter create desc drop help load summary
version命令为您提供Impala的当前版本,如下所示。
[quickstart.cloudera:21000] > version; Shell version: Impala Shell v2.3.0-cdh5.5.0 (0c891d7) built on Mon Nov 9 12:18:12 PST 2015 Server version: impalad version 2.3.0-cdh5.5.0 RELEASE (build 0c891d79aa38f297d244855a32f1e17280e2129b)
Impala的history命令显示在shell中执行的最后10个命令。 以下是历史命令的示例。 这里我们执行了5个命令,即版本,帮助,显示,使用和历史。
[quickstart.cloudera:21000] > history; [1]:version; [2]:help; [3]:show databases; [4]:use my_db; [5]:history;
您可以使用quit或exit命令从Impala shell中弹出,如下所示。
[quickstart.cloudera:21000] > exit; Goodbye cloudera
connect命令用于连接到Impala的给定实例。 如果没有指定任何实例,则它将连接到默认端口21000,如下所示。
[quickstart.cloudera:21000] > connect; Connected to quickstart.cloudera:21000 Server version: impalad version 2.3.0-cdh5.5.0 RELEASE (build 0c891d79aa38f297d244855a32f1e17280e2129b)
Impala的特定于查询的命令接受查询。 它们在下面解释 -
explain命令返回给定查询的执行计划。
[quickstart.cloudera:21000] > explain select * from sample; Query: explain select * from sample +------------------------------------------------------------------------------------+ | Explain String | +------------------------------------------------------------------------------------+ | Estimated Per-Host Requirements: Memory = 48.00MB VCores = 1 | | WARNING: The following tables are missing relevant table and/or column statistics. | | my_db.customers | | 01:EXCHANGE [UNPARTITIONED] | | 00:SCAN HDFS [my_db.customers] | | partitions = 1/1 files = 6 size = 148B | +------------------------------------------------------------------------------------+ Fetched 7 row(s) in 0.17s
profile命令显示有关最近查询的低级信息。 此命令用于查询的诊断和性能调整。 以下是配置文件命令的示例。 在这种情况下,profile命令返回说明查询的低级信息。
[quickstart.cloudera:21000] > profile; Query Runtime Profile: Query (id=164b1294a1049189:a67598a6699e3ab6): Summary: Session ID: e74927207cd752b5:65ca61e630ad3ad Session Type: BEESWAX Start Time: 2016-04-17 23:49:26.08148000 End Time: 2016-04-17 23:49:26.2404000 Query Type: EXPLAIN Query State: FINISHED Query Status: OK Impala Version: impalad version 2.3.0-cdh5.5.0 RELEASE (build 0c891d77280e2129b) User: cloudera Connected User: cloudera Delegated User: Network Address:10.0.2.15:43870 Default Db: my_db Sql Statement: explain select * from sample Coordinator: quickstart.cloudera:22000 : 0ns Query Timeline: 167.304ms - Start execution: 41.292us (41.292us) - Planning finished: 56.42ms (56.386ms) - Rows available: 58.247ms (1.819ms) - First row fetched: 160.72ms (101.824ms) - Unregister query: 166.325ms (6.253ms) ImpalaServer: - ClientFetchWaitTimer: 107.969ms - RowMaterializationTimer: 0ns
下表列出了Impala中的表和数据特定选项。
Sr.No | 指挥解释 |
---|---|
1 | Alter alter命令用于更改Impala中表的结构和名称。 |
2 | Describe Impala的describe命令提供表的元数据。 它包含列和其数据类型等信息。 describe命令具有desc作为快捷方式。 |
3 | Drop drop命令用于从Impala中删除构造,其中构造可以是表,视图或数据库函数。 |
4 | insert Impala的insert命令用于
|
5 | select select语句用于对特定数据集执行所需的操作。 它指定要在其上完成某些操作的数据集。 您可以打印或存储(在文件中)select语句的结果。 |
6 | show Impala的show语句用于显示各种构造(如表,数据库和表)的中继。 |
7 | use Impala的use语句用于将当前上下文更改为所需的数据库。 |
在进行 HarmonyOS 应用的编译构建前,需要对工程和编译构建的 Module 进行设置,请根据实际情况进行修改。build.gradle:Harmony...
DevEco Studio 开发环境需要依赖于网络环境,需要连接上网络才能确保工具的正常使用,可以根据如下两种情况来配置开发环境:如果...
EnumSetjava.lang.Object |---java.util.AbstractCollectionE |---|---java.util.AbstractSetE |---|---|---java.util.EnumSetEp...
LinkedListjava.lang.Object |---java.util.AbstractCollectionE |---|---java.util.AbstractListE |---|---|---java.util.Abstr...
Optionaljava.lang.Object |---java.util.OptionalTpublic final class OptionalTextends Object一个容器对象,可能包含也可能不...
TreeMapjava.lang.Object |---java.util.AbstractMapK,V |---|---java.util.TreeMapK,Vpublic class TreeMapK,Vextends Abstract...
PacMapjava.lang.Object |---ohos.utils.BasePacMap |---|---ohos.utils.PacMappublic class PacMapextends BasePacMap提供支持S...
Stopwatchjava.lang.Object |---ohos.utils.Stopwatchpublic final class Stopwatchextends Object提供秒表功能来记录从主任务拆...
AccessibilityEventInfojava.lang.Object |---ohos.accessibility.AccessibilityEventInfopublic class AccessibilityEventInfoe...
此函数接受日期时间对象作为参数,并返回给定日期时间对象的当前小时的分钟。语法这是 GetMinute()函数的语法。grunt GetMinute(...