hiveql相关内容

如何在 Hive 中生成所有 n-gram

我想使用 HiveQL 创建一个 n-gram 列表.我的想法是使用带有前瞻和拆分功能的正则表达式 - 但是这不起作用: select split('这是我的句子', '(\\S+) +(?=(\\S+))'); 输入是表格的一列 |句子||-------------------------||这是我的句子||这是另一个句子| 输出应该是: ["这是","是我的","我的句子"][“这是 ..
发布时间:2021-12-28 23:29:47 其他开发

Hive:合并配置设置不起作用

在 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. ..
发布时间:2021-12-28 23:29:28 其他开发

Hive - 有没有办法进一步优化 HiveQL 查询?

我写了一个查询来查找 3 月到 4 月美国最繁忙的 10 个机场.它产生所需的输出,但我想尝试进一步优化它. 是否有任何 HiveQL 特定优化可以应用于查询?GROUPING SETS 是否适用于此处?我是 Hive 的新手,目前这是我提出的最短查询. SELECT airports.airport, COUNT(Flights.FlightsNum) AS Total_Flights从 ..
发布时间:2021-12-28 23:29:18 其他开发

hive0.13.1 中的 hive-site.xml 路径

我是新手.我想知道 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环境变量. 我能够运行命令(创建表、显示、加载数据、查询表..). 但是 ..
发布时间:2021-12-28 23:27:18 其他开发

Hive:在列名中使用 Concat

我正在尝试从列名为:year_2016、year_2017、year_2018 等的表中获取数据.我不确定如何从该表中获取数据.数据如下: |count_of_accidents |年_2016 |2017 年 |year_2018 ||------------|-----------|-----------|----------||15 |12 |5 |1 ||5 |10 |6 |18 | ..
发布时间:2021-12-28 23:27:05 其他开发

在配置单元中创建表时向列添加默认值

我能够从外部文件中的数据创建一个 hive 表.现在我希望从上一个表中的数据创建另一个表,并带有默认值的附加列. 我知道可以使用 CREATE TABLE AS SELECT 但如何添加具有默认值的其他列? 解决方案 您可以指定在创建/更新时从表中选择哪些列.只需提供默认值作为列之一.更新示例如下: 创建简单的表并用值填充它: hive>创建表 table1(col1 str ..
发布时间:2021-12-28 23:26:52 其他开发

Hive 中的行号功能

如何在运行选择查询时为现有表生成行号? 例如: select row_number(), * from emp; 我使用的是 hive 0.13.我无法在我的环境中访问外部 jars 或 udfs.底层文件采用镶木地板格式. 提前致谢! 解决方案 ROW_NUMBER() 是一个 窗口函数,所以它需要与OVER 子句结合使用.只是不要指定任何PARTITION. SELECT ..
发布时间:2021-12-28 23:25:22 其他开发

Hive 的 unix_timestamp 和 from_unixtime 函数

我的印象是 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 ..
发布时间:2021-12-28 23:24:37 其他开发

你能解释一下何时以及为什么在 hive 中调用 mapreduce

select * from Table_name limit 5; select col1_name,col2_name from table_name limit 5; 当我运行第一个查询时,不会调用 MapReduce,而对于其他查询,调用 MapReduce.你能解释一下原因吗. 解决方案 要理解其中的原因,首先我们需要知道map和reduce阶段是什么意思:- 地 ..
发布时间:2021-12-28 23:23:50 其他开发

如何更新/删除 Hive 分区?

向Hive中的外部表添加分区后,如何更新/删除它? 解决方案 您可以通过以下方式更新 Hive 分区,例如: ALTER TABLE 日志分区(年 = 2012,月 = 12,日 = 18)设置位置'hdfs://user/darcy/logs/2012/12/18'; 此命令不会移动旧数据,也不会删除旧数据.它只是将分区设置为新位置. 要删除分区,您可以这样做 ALTER T ..
发布时间:2021-12-28 23:22:59 其他开发

在我运行 Hive 的任何地方创建了 metastore_db

文件夹 metastore_db 在我运行 Hive 查询的任何目录中创建.有没有办法在定义的位置只有一个 metastore_db 并阻止它在所有地方创建?和hive.metastore.local有什么关系吗? 解决方案 这里感兴趣的属性是 javax.jdo.option.ConnectionURL.此属性的默认值为 jdbc:derby:;databaseName=metastor ..
发布时间:2021-12-28 23:20:16 其他开发

如何在 Hive 中记录 created_at 和 updated_at 时间戳?

MySQL 可以自动记录 created_at 和 updated_at 时间戳. Hive 是否提供类似的机制?如果没有,实现此功能的最佳方法是什么? 解决方案 Hive 不提供这种机制.您可以通过在您的选择中使用 UDF 来实现这一点:from_unixtime(unix_timestamp()) as created_at.请注意,这将在每个映射器或化简器中执行,并且可能返回不同的值 ..
发布时间:2021-12-28 23:18:49 其他开发

当 Hive 插入中途失败时会发生什么?

假设一次插入预计将在 hive 中加载 100 条记录,并且已经插入了 40 条记录,但由于某种原因插入失败.事务会完全回滚,撤消插入的 40 条记录吗?或者即使插入查询失败,我们还会在 hive 表中看到 40 条记录吗? 解决方案 操作是原子的(即使对于非 ACID 表):如果您使用 HiveQL 插入或重写数据,它会将数据写入临时位置,并且仅当命令成功将文件移动到表位置(在 INSE ..
发布时间:2021-12-28 23:18:27 其他开发