hiveql相关内容
我想使用 HiveQL 创建一个 n-gram 列表.我的想法是使用带有前瞻和拆分功能的正则表达式 - 但是这不起作用: select split('这是我的句子', '(\\S+) +(?=(\\S+))'); 输入是表格的一列 |句子||-------------------------||这是我的句子||这是另一个句子| 输出应该是: ["这是","是我的","我的句子"][“这是
..
在 Hive 2.2.0 上,我使用查询从另一个大小为 1.34 GB 的源表中填充一个 orc 表 INSERT INTO TABLE TableOrc SELECT * FROM Table;---- (1) 该查询创建了包含 6 个 orc 文件的 TableORC 表,这些文件远小于 256MB 的块大小. -- FolderList1-rwxr-xr-x user1 超级组 65.
..
我写了一个查询来查找 3 月到 4 月美国最繁忙的 10 个机场.它产生所需的输出,但我想尝试进一步优化它. 是否有任何 HiveQL 特定优化可以应用于查询?GROUPING SETS 是否适用于此处?我是 Hive 的新手,目前这是我提出的最短查询. SELECT airports.airport, COUNT(Flights.FlightsNum) AS Total_Flights从
..
我的 hive 表中有 day='2019-01-01' 的数据,我想将相同的数据复制到 2019 年 1 月的整个月份.(即在'2019-01-02', '2019-01-03'...'2019-01-31') 我正在尝试关注,但数据仅插入到“2019-01-02"而不是“2019-01-03"中. INSERT OVERWRITE TABLE db_t.students PARTITI
..
我有两张表,一张是学校,一张是学生.我想找到特定学校的所有学生.学校的schema是:id, name, location学生是:id、name、schoolId.我写了以下脚本: schoolId=$(hive -e "set hive.cli.print.header=false;select id from school;")hive -hiveconf "schoolId"="$scho
..
这是下表 如果不存在则创建表 TestingTable1(BUYER_ID BIGINT,ITEM_ID BIGINT,CREATED_TIME STRING) 这是上表中的以下数据- BUYER_ID |ITEM_ID |CREATED_TIME-------------+------------------+----------1015826235 220003038067 2012-0
..
我是新手.我想知道 hive-0.13.1 版本中的 hive-site.xml 和 hive-default.xml 文件位置.> 我已经从以下位置下载了 hive0.13.1-bin 版本.http://apache.mirrors.pair.com/hive/hive-0.13.1/ 提取然后配置hive环境变量. 我能够运行命令(创建表、显示、加载数据、查询表..). 但是
..
我正在尝试从列名为:year_2016、year_2017、year_2018 等的表中获取数据.我不确定如何从该表中获取数据.数据如下: |count_of_accidents |年_2016 |2017 年 |year_2018 ||------------|-----------|-----------|----------||15 |12 |5 |1 ||5 |10 |6 |18 |
..
我能够从外部文件中的数据创建一个 hive 表.现在我希望从上一个表中的数据创建另一个表,并带有默认值的附加列. 我知道可以使用 CREATE TABLE AS SELECT 但如何添加具有默认值的其他列? 解决方案 您可以指定在创建/更新时从表中选择哪些列.只需提供默认值作为列之一.更新示例如下: 创建简单的表并用值填充它: hive>创建表 table1(col1 str
..
如何在运行选择查询时为现有表生成行号? 例如: select row_number(), * from emp; 我使用的是 hive 0.13.我无法在我的环境中访问外部 jars 或 udfs.底层文件采用镶木地板格式. 提前致谢! 解决方案 ROW_NUMBER() 是一个 窗口函数,所以它需要与OVER 子句结合使用.只是不要指定任何PARTITION. SELECT
..
我的印象是 unix_timestamp 和 from_unixtime Hive 函数彼此“反向". 当我尝试在 Hive 中将时间戳字符串转换为秒时: SELECT unix_timestamp('10-Jun-15 10.00.00.000000 AM', 'dd-MMM-yy hh.mm.ss.MS a'); 我收到 1418176800. 当我尝试将 1418176800
..
select * from Table_name limit 5; select col1_name,col2_name from table_name limit 5; 当我运行第一个查询时,不会调用 MapReduce,而对于其他查询,调用 MapReduce.你能解释一下原因吗. 解决方案 要理解其中的原因,首先我们需要知道map和reduce阶段是什么意思:- 地
..
我在 hive 中创建了一个表,我想知道我的表是在哪个目录中创建的?我想知道路径... 解决方案 DESCRIBE FORMATTED my_table; 或 DESCRIBE FORMATTED my_table PARTITION (my_column='my_value');
..
向Hive中的外部表添加分区后,如何更新/删除它? 解决方案 您可以通过以下方式更新 Hive 分区,例如: ALTER TABLE 日志分区(年 = 2012,月 = 12,日 = 18)设置位置'hdfs://user/darcy/logs/2012/12/18'; 此命令不会移动旧数据,也不会删除旧数据.它只是将分区设置为新位置. 要删除分区,您可以这样做 ALTER T
..
我有日期时间字符串 "2019-11-02T20:18:00Z".如何在 Hive HQL 中将其转换为时间戳? 解决方案 如果你想保留毫秒然后删除 Z,用空格替换 T 并转换为时间戳: select timestamp(regexp_replace("2019-11-02T20:18:00Z", '^(.+?)T(.+?)Z$','$1 $2')); 结果: 2019-11-02
..
谁能解释清楚 hive.auto.convert.join 和 hive.auto.convert.join.noconditionaltask 配置参数? 还有这些对应的尺寸参数: hive.mapjoin.smalltable.filesize 和 hive.auto.convert.join.noconditionaltask.size 我的观察是在 Tez 上运行时,
..
文件夹 metastore_db 在我运行 Hive 查询的任何目录中创建.有没有办法在定义的位置只有一个 metastore_db 并阻止它在所有地方创建?和hive.metastore.local有什么关系吗? 解决方案 这里感兴趣的属性是 javax.jdo.option.ConnectionURL.此属性的默认值为 jdbc:derby:;databaseName=metastor
..
我有一个分区如下的表: TABLE 日志分区(年 = 2019,月 = 06,日 = 18) 分区 'year'、'month' 和 'day' 为字符串格式. 我需要删除保留过去 7 天分区的分区.并且需要每周运行作业,以便日志表在每周开始时有 7 天的日志. 解决方案 您可以在分区规范中使用
..
MySQL 可以自动记录 created_at 和 updated_at 时间戳. Hive 是否提供类似的机制?如果没有,实现此功能的最佳方法是什么? 解决方案 Hive 不提供这种机制.您可以通过在您的选择中使用 UDF 来实现这一点:from_unixtime(unix_timestamp()) as created_at.请注意,这将在每个映射器或化简器中执行,并且可能返回不同的值
..
假设一次插入预计将在 hive 中加载 100 条记录,并且已经插入了 40 条记录,但由于某种原因插入失败.事务会完全回滚,撤消插入的 40 条记录吗?或者即使插入查询失败,我们还会在 hive 表中看到 40 条记录吗? 解决方案 操作是原子的(即使对于非 ACID 表):如果您使用 HiveQL 插入或重写数据,它会将数据写入临时位置,并且仅当命令成功将文件移动到表位置(在 INSE
..