小编und*_*ood的帖子

如何在HIVE表中找到最新的分区

我有一个分区表 - 有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表的最新分区?

hadoop hive apache-spark

11
推荐指数
2
解决办法
2万
查看次数

Java Spring Batch与Apache Spark基准测试中的ETL

我已经使用Apache Spark + Scala超过5年了(学术和专业经验).我总是发现Spark/Scala是用于构建任何类型的批处理或流式ETL/ELT应用程序的强大组合之一.

但最近,我的客户决定在我们的两个主要管道中使用Java Spring Batch:

  1. 从MongoDB读取 - >业务逻辑 - >写入JSON文件(~2GB | 600k行)
  2. 阅读Cassandra - >业务逻辑 - >编写JSON文件(~4GB | 2M行)

这个企业级决策令我感到非常困惑.我同意业内有更多的思想,但我无法理解采取这一行动的必要性.

我的问题是:

  1. 有人比较过Apache Spark和Java Spring Batch之间的表现吗?
  2. 使用Spring Batch而不是Spark有什么好处?
  3. 与Apache Spark相比,Spring Batch是"真正分布式的"吗?我在官方文档中遇到了chunk(),partition等方法,但我并不相信它的真正分布式.在所有Spring Batch在单个JVM实例上运行之后.不是吗???

我无法绕过这些.所以,我想使用这个平台进行Spring Batch和Apache Spark之间的公开讨论.

spring etl spring-batch spring-boot apache-spark

9
推荐指数
1
解决办法
3171
查看次数

KStreams + Spark Streaming +机器学习

我正在做一个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

8
推荐指数
2
解决办法
5734
查看次数

在Scala中传递同一对象的两个方法之间的值

我希望将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每次迭代都有一个,即每个报告.欢迎任何想法在这里.如果需要,我会很乐意提供更多关于我的要求的说明.

scala

0
推荐指数
1
解决办法
66
查看次数