Apache Spark选择所有行

像素5x2

当我使用JDBC连接来馈电时,即使我对数据帧使用了过滤;当我检查oracle数据源上的查询日志时,我看到执行火花:

SELECT [column_names] FROM MY_TABLE

参考https://stackoverflow.com/a/40870714/1941560

我期待着火花懒惰地计划查询和执行;

SELECT [column_names] FROM MY_TABLE WHERE [filter_predicate]

但是Spark并没有这样做。之后将获取所有数据并进行过滤。我需要这种行为,因为我不想每x分钟检索一次所有表,而只更改了行(通过递增filterin UPDATE_DATE)。

有没有办法做到这一点?

这是我的python代码:

df = ...
lookup_seconds = 5 * 60;
now = datetime.datetime.now(pytz.timezone("some timezone"))
max_lookup_datetime = now - datetime.timedelta(seconds=lookup_seconds)
df.where(df.UPDATE_DATE > max_lookup_datetime).explain()

说明结果:

Physical Plan == *Filter (isnotnull(UPDATE_DATE#21) && (UPDATE_DATE#21 > 1516283483208806)) +- Scan ExistingRDD[NO#19,AMOUNT#20,UPDATE_DATE#21,CODE#22,AMOUNT_OLD#23] 

编辑:完整的答案在这里

Guitao

从官方文档1开始

dbtable应该读取的JDBC表。请注意,可以使用在SQL查询的FROM子句中有效的任何东西。例如,除了完整表之外,您还可以在括号中使用子查询。

您可以将JDBC选项dbtable设置为子查询SQL。例如:

jdbcDF = spark.read \
    .format("jdbc") \
    .option("url", "jdbc:postgresql:dbserver") \
    .option("dbtable", "(select * from tbl where UPDATE_DATE > max_lookup_datetime) t") \
    .option("user", "username") \
    .option("password", "password") \
    .load()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否可以在Apache Spark中对所有工作程序执行命令?

Apache Spark与Apache Ignite

Apache Mahout和Apache Spark的MLlib有什么区别?

apache spark:具有所有依赖关系的构建jar的akka版本错误

Apache Spark与Hadoop方法有何不同?

获取连接到Apache Spark GraphX中的节点的所有节点

如何使用Apache Spark Scala获取大型CSV / RDD [Array [double]]中所有列的直方图?

Apache Spark和gRPC

在Apache Spark中,如何按两个共享值对RDD的所有行进行分组?

Apache Spark与Apache Spark 2

获取Apache Spark中重复行的ID(考虑所有其他列)

apache spark agg()函数

通过Apache HBase 2.0的Apache Spark 2.3

Apache ProxyPass负载均衡所有URL

Apache Spark:从行提取值的问题

Apache Spark具有Cassandra行为

Apache Spark(graphx)可能未利用所有内核和内存

将Apache Spark中的所有资源与Yarn一起使用

所有对Symfony路由组件的apache请求

将所有值与Iterable,Apache Spark分开

Apache Kafka保留所有数据

Apache + PHP-浏览所有存储的会话,选择并删除一些

意外启用了所有Apache模块

Apache Kudu 与 Apache Spark NoSuchMethodError:exportAuthenticationCredentials

phpMyAdmin 可用于所有 apache 域

如何在 Apache Beam 中为 Avro SpecificRecordBase 的所有子类选择单个编码器?

Autobatching in Apache Spark

选择最大查询返回 Apache Hive 中表中的所有行

在 Apache Spark DataFrame 中,如何刪除所有非 None 值都相同的所有列?