我希望每天,每周和每月运行我发送的邮件数量.大约有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) 我在将字符串转换为日期类型时遇到问题.使用配置单元导入数据时,我有一个带有类型字符串的列activation_date(因为我无法将其作为日期类型导入),我想将其转换为日期类型.
例
Activation_date 7-MAR-13 12-APR-12
我想要它作为07-03-2013在蜂巢.
root@hadoop:~# hive
Run Code Online (Sandbox Code Playgroud)
Logging initialized using configuration in jar:file:/usr/lib/hive/apache-hive-1.1.0-bin/lib/hive-common-1.1.0.jar!/hive-log4j.properties
[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
at jline.TerminalFactory.create(TerminalFactory.java:101)
at jline.TerminalFactory.get(TerminalFactory.java:158)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:229)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)
at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:773)
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
at jline.console.ConsoleReader.<init>(ConsoleReader.java:230)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)
at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:773)
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)
at …Run Code Online (Sandbox Code Playgroud) 我正在尝试从a的元数据中ResultSet获取列的名称,但是在Hive中我得到列名称,如果形式table_name.column_name和我只想拥有column_name(类似于我从MySQL获得的例子).可能吗 ?
我正在学习班上的大数据,现在我们正在学习HIVE.我们今天了解了地图绘制器和减速器,但老实说它已经超越了我的脑海.有人可以向我解释映射器和减速器在每一步中的作用吗?或者至少指出一些好的读数?提前致谢
当我在HIVE中运行CTAS时,数据也会同时填充.但我只想创建表,但不填充数据.我应该怎么做?谢谢.
我是Spark和AWS的noobie.
我在AWS中有一个DynamoDB表.我在带有hive的EMR上创建了一个Spark集群.使用hive shell,我创建了外部表"RawData"以连接到DynamoDB.
现在,当我使用DynamoDB依赖jars启动spark-shell时,--jars /usr/share/aws/emr/ddb/lib/emr-ddb-hive.jar,/usr/share/aws/emr/ddb/lib/emr-ddb-hadoop.jar
我可以使用HiveContext 查询表"RawData"并获取结果.但是当我使用spark-submit提交我的Spark程序时,我在终端中看到一些spark异常,并在日志中发现:" org.apache.spark.sql.AnalysisException:没有这样的表RawData ".
这就是我创建集群的方式: aws emr create-cluster --name MyCluster --release-label emr-4.0.0 --applications Name=Spark Name=Hive ...
请告诉我我做错了什么.列夫
目前我遇到一个问题确实需要一些帮助.我们正在尝试对我们的hadoop集群进行kerberize,包括hive server2和oozie.我的oozie作业在数据节点中旋转了一个java动作,试图连接到kerberized hive服务器2.没有用户的kerberos keytab进行身份验证.所以我只能在java动作中使用oozie传递的委托令牌连接到hive服务器2.我的问题是:有没有办法在oozie java动作中使用委托令牌连接到hive服务器2?如果是这样,我怎么能通过hive JDBC做到这一点?谢谢贾里
是否有任何表达式QUARTER,WEEK以及DAYOFWEEKHive(v0.14.1)中的DateTime字段与MySql中的这些buildin函数做同样的事情?
这是我想要的规范(来自MySql doc):
注意:1.函数quarter()是在Hive 1.3中引入的,但是我需要一个expr来支持更低版本.2.支持函数weekofyear()而不是week(),但是有一点不同.但没关系,所以请忽略这个.
我想知道如何利用spark SQL利用内存处理.如果有的话,目前支持使用内存中对象运行spark SQL的方法是什么?
是否可以将CREATE TABLE AS语句的目标作为内存中的表?
是否可以在FROM子句中引用内存中的对象,如数据帧?
我目前对火花的理解是有限的,所以如果看起来太简单,请原谅我的问题.我将不胜感激任何建议或指导.