我有一个分区表 - 有201个分区.我需要在此表中找到最新的分区,并使用它来处理我的数据.查找所有分区列表的查询是:
use db;
show partitions table_name;
Run Code Online (Sandbox Code Playgroud)
我需要一个查询来查找最新的这些分区.分区的格式
ingest_date=2016-03-09
Run Code Online (Sandbox Code Playgroud)
我尝试使用max(),这给了我一个错误的结果.我不想通过这样做遍历整个表格
select max(ingest_date) from db.table_name;
Run Code Online (Sandbox Code Playgroud)
这会给我预期的输出..但是杀死了第一个分区的重点.
是否有更高效的查询来获取HIve表的最新分区?
我已经使用Apache Spark + Scala超过5年了(学术和专业经验).我总是发现Spark/Scala是用于构建任何类型的批处理或流式ETL/ELT应用程序的强大组合之一.
但最近,我的客户决定在我们的两个主要管道中使用Java Spring Batch:
这个企业级决策令我感到非常困惑.我同意业内有更多的思想,但我无法理解采取这一行动的必要性.
我的问题是:
我无法绕过这些.所以,我想使用这个平台进行Spring Batch和Apache Spark之间的公开讨论.
我正在做一个POC,用于在数据流上运行机器学习算法.
我最初的想法是获取数据,使用
Spark Streaming - >来自多个表的聚合数据 - >在数据流上运行MLLib - >生成输出.
但是我穿过KStreams.现在我很困惑!
问题:
1.Spark Streaming和Kafka Streaming有什么区别?
2.我怎样才能结婚KStreams + Spark Streaming +机器学习?
我的想法是连续培训测试数据,而不是进行批量培训.
machine-learning apache-kafka apache-spark spark-streaming apache-kafka-streams
我希望将var/val的值从一个方法传递给另一个方法.
例如,我有
object abc {
def onStart = {
val startTime = new java.sql.Timestamp( new Date())
}
def onEnd = {
//use startTime here
}
}
Run Code Online (Sandbox Code Playgroud)
电话:
onStart()
executeReports(reportName, sqlContexts)
onEnd()
Run Code Online (Sandbox Code Playgroud)
这里onStart()
和onEnd()
有作业监控功能executeReports()
.
executeReports()
循环运行5个报告.
我尝试过使用全局变量
object abc{
var startTime : java.sql.Timestamp = _
def onStart = {
startTime = new java.sql.Timestamp( new Date())
}
def onEnd = {
//use startTime here
}
}
Run Code Online (Sandbox Code Playgroud)
但是这个问题是当循环执行下一个报告时,startTime
不会改变.
我也试过使用对我来说也不起作用的Singleton Class.
我的要求是startTime
每次迭代都有一个,即每个报告.欢迎任何想法在这里.如果需要,我会很乐意提供更多关于我的要求的说明.
apache-spark ×3
apache-kafka ×1
etl ×1
hadoop ×1
hive ×1
scala ×1
spring ×1
spring-batch ×1
spring-boot ×1