Spark读JDBC提前过滤数据
来源:互联网 发布:淘宝购买店铺 编辑:程序博客网 时间:2024/06/02 09:13
读取Mysql方法见:
http://blog.csdn.net/baifanwudi/article/details/78559177
有这样一个需求,读取mysql某一个表某一天数据;
String beginTime = day+ " 00:00:00"; String endTime = day + " 23:59:59"; Dataset<Row> jdbcTable=spark.read().format("jdbc") .option("url", PropertiesConfig.URL) .option("dbtable",tableName) .option("user",PropertiesConfig.USERNAME) .option("password",PropertiesConfig.PASSWORD).load().filter("create_time between '"+beginTime+"' and '"+endTime+"'");
发现spark是把所有该tableName所有数据load进spark再filter,速率很慢.
所以想,是否提前过滤, 终于找到方法:
String tableName= "(select * from device_info where create_time between '"+ beginTime + "' and '" + endTime + "' ) as device_time_filter"; Dataset<Row> jdbcTable=spark.read().format("jdbc") .option("url", PropertiesConfig.URL) .option("dbtable",tableName) .option("user",PropertiesConfig.USERNAME) .option("password",PropertiesConfig.PASSWORD).load().
只要在该mysql表的create_time建index,效率快很多.
原理就是先从mysql 先过滤读device_info 张表重命名为device_time_filter.
阅读全文
0 0
- Spark读JDBC提前过滤数据
- xml提前数据
- Spark SQL通过JDBC连接MySQL读写数据
- spark中通过jdbc读取和存储数据
- spark:协同过滤--17
- spark:协同过滤--49
- spark 协同过滤 (翻译)
- Spark(黑名单过滤)
- 数据备份应该提前准备
- Spark SQL读取Hive数据配置及使用Thrift JDBC/ODBC Server访问Spark SQL
- 关于spark读取elasticsearch中数据,但是无法实现过滤数据的问题
- Spark优化-数据倾斜解决方案 聚合源数据以及过滤导致倾斜的key
- spark 数据倾斜解决方案 (二)聚合源数据以及过滤导致倾斜的key
- 数据过滤
- 离线轻量级大数据平台Spark之MLib机器学习协同过滤ALS实例
- Spark 获取jdbc Rdd
- Spark---Datasource(JDBC)---java
- Spark---Datasource(JDBC)---Scala
- CSS实现瀑布流等分布局效果,兼容各大主流浏览器
- 【R语言】柱状图+自动颜色+横向+添加文本+更改坐标轴范围
- ubuntu获取主机名称
- Cassandra节点、数据中心、群集操作(目录)
- ios 自定义菜单显示内容(可拖拽排序collectionView
- Spark读JDBC提前过滤数据
- A + B Problem II
- 算法训练 6-1 递归求二项式系数值
- 摄像机之RPG游戏中玩家第三视角
- 8号博客,
- Oracle 计算.索引数据大小,表数据大小,以及表分区中某个分区的数据大小
- 关于Rxjava的简单使用
- win10+vs2013+cuda7.5/cpu only+anaconda3的情况下安装caffe
- 值得学习的C/C++资源(转)