SQL我想通过 .txt对S3文件/存储桶运行查询HIVE。我不知道如何进行设置。感谢您的帮助。
我正在尝试使用 Hive 的“写入目录”功能下载 Hive 查询的结果。对于某些列,我的查询返回NULL值,但在生成的文件中我可以看到它被替换为\N. 这是 Hive 的预期行为吗?我必须将生成的文件上传到 Bigquery 表。有没有办法生成NULL空值,而不是\N因为在接收文件后\N我必须进行中间处理(替换\N为NULL空字符串)。请建议。
以下架构的分区和分桶的理想列是什么?是否有必要两者都实施,还是一个就可以?
user_id INTEGER UNSIGNED,
product_id VARCHAR(20),
gender ENUM('M','F') default NULL,
age VARCHAR(6),
occupation TINYINT UNSIGNED default NULL,
city_category ENUM('A','B','C','D','E') default NULL,
stay_in_current_city_years VARCHAR(6),
martial_status TINYINT UNSIGNED default 0,
product_category_1 TINYINT UNSIGNED default 0,
product_category_2 TINYINT UNSIGNED default 0,
product_category_3 TINYINT UNSIGNED default 0,
purchase_amount INTEGER UNSIGNED default 0
Run Code Online (Sandbox Code Playgroud)
主要目标是利用Hive根据以上属性做一些分析。
有人请帮我解决这个问题,我们如何将map<string,string>类型转换为string配置单元中的数据类型?
我希望每天,每周和每月运行我发送的邮件数量.大约有500种不同的消息类型.
我有以下表格:
Table name: messages
int message_type
BIGINT num_sent
string date
Table name: stats
int message_type
BIGINT num_sent_today
BIGINT num_sent_week
BIGINT num_sent_month
Run Code Online (Sandbox Code Playgroud)
表消息每天更新,包含今天日期的新行.我可以每天运行一个单独的配置单元查询来更新stats表吗?注意我无法通过直接查询消息表来获取运行计数,WHERE date >= 30 days ago因为表太大了.我必须添加/减去表统计中的每日值.像这样的东西:
// pseudocode
// Get this table (call it table b) from table messages
int message_type
BIGINT num_sent_today
BIGINT num_sent_seven_days_ago
BIGINT num_sent_thirty_days_ago
// join b with table stats so that I can
// Set stats.num_sent_today = b.num_sent_today
// Set stats.num_sent_week = stats.num_sent_week + b.num_sent_today - b.num_sent_seven_days_ago
// Set stats.num_sent_month …Run Code Online (Sandbox Code Playgroud) 我有一个“日志”表,它目前按年、月和日进行分区。我想在“日志”表的顶部创建一个分区视图,但遇到了这个错误:
hive> CREATE VIEW log_view PARTITIONED ON (pagename,year,month,day) AS SELECT pagename, year,month,day,uid,properties FROM log;
FAILED: SemanticException [Error 10093]: Rightmost columns in view output do not match PARTITIONED ON clause
Run Code Online (Sandbox Code Playgroud)
创建分区视图的正确方法是什么?
当我在HIVE中运行CTAS时,数据也会同时填充.但我只想创建表,但不填充数据.我应该怎么做?谢谢.
我有Hive 1.1,我在将HEX值转换为Decimal或BIGINT时遇到问题.
使用UNHEX('2BD1BCAE0501250E')应返回= 3157512269357720846
但相反,我得到像WingDings = +Ѽ %的东西
我尝试过DECODE,ENCODE,BASE64 ......但似乎没有任何工作.有没有其他人试过这样做?谢谢
例如生成1G记录,其序号在1到1G之间。
我是Hive的新手。尝试使用以下查询获取前一天的日期:
SELECT MAX(id) FROM store_rcd_table
WHERE recon_dt = unix_timestamp(date_sub(from_unixtime(unix_timestamp(),
'yyyy-MM-dd'),1),'yyyy-MM-dd')
Run Code Online (Sandbox Code Playgroud)
但是获取NULL作为输出。输出应为date(2017-09-23)和MAX(id)。
也尝试过
Select MAX(id) FROM store_rcd_table
WHERE recon_dt ='2017-09-24';
Run Code Online (Sandbox Code Playgroud)
该查询也没有输出,只是输出OK。
没有得到什么问题?任何建议/帮助表示赞赏。
该表的结构为:
id string
locationid string
mngrid string
empid string
deleted boolean
recon_dt string
Run Code Online (Sandbox Code Playgroud) 我已经从输入文件加载了一个表。
CREATE TABLE MyTable (
ID INT,
VALUE FLOAT,
RATE INT
...
LOAD DATA LOCAL INPATH 'MYPATH' INTO TABLE MyTable;
Run Code Online (Sandbox Code Playgroud)
现在我想基于这个创建一个新的
DerivedTable =
SELECT ID, VALUE*RATE AS Total
FROM MyTable
WHERE VALUE IS NOT NULL;
Run Code Online (Sandbox Code Playgroud)
然后我将使用该表作为其他表和输出的源。
创建此“临时”表的正确 Sql(或 Hive)方法是什么?这应该适用于spark-sql?
PS:我知道如何在 Spark-Shell 中做到这一点。但这不是我要找的。
我需要查询下表并查看我的 Apache HIVE 集群中的信息:
每行需要包含以下内容:
表模式
表名
表说明
列名称
列数据类型
柱长
立柱精度
柱标尺
空或非空
主要关键指标
这可以很容易地从大多数 RDBMS(元数据表/视图)中查询,但我很难找到有关 HIVE 中等效元数据表/视图的大量信息。
请帮忙 :)
hiveql ×12
hive ×11
hadoop ×10
apache-spark ×2
hadoop2 ×2
amazon-s3 ×1
apache ×1
dictionary ×1
hdfs ×1
mapreduce ×1
null ×1
partitioning ×1
sql ×1