Spark SQL
breeze_lsw
打杂工程师
展开
-
Spark withColumn 陷阱
withColumn / withColumnRenamed 是 spark 中常用的 API,可以用于添加新字段 / 字段重命名 / 修改字段类型,但是当列的数量增加时,会出现严重的性能下降现象,本文将分析出现该现象的原因以及该如何解决原创 2020-04-27 23:43:41 · 9850 阅读 · 0 评论 -
Spark Sql 复杂类型高阶函数
文章目录背景1. 只使用 sql 实现2. 使用 udf 的方式3. 使用高阶函数的方式使用Array 高阶函数1. transform2. filter3. exists4. aggregate5. zip_with复杂类型内置函数总结参考spark sql 2.4 新增了高阶函数功能,允许在数组类型中像 scala/python 一样使用高阶函数背景复杂类型的数据和真实数据模型相像,...原创 2019-04-03 18:50:06 · 3904 阅读 · 1 评论 -
spark-sql-perf
文章目录简介测试tpcds-kitspark-sql-perf生成数据执行查询查询结果TPC-DS简介spark-sql-perf 是一个 spark sql 性能测试框架,可以用来进行一些基准测试。测试环境:spark 2.4.0spark-sql-perf_2.11-0.5.0-SNAPSHOT测试tpcds-kit通过 tpcds-kit 生成 TPC-DS 数据。su...原创 2019-01-03 01:19:15 · 2629 阅读 · 0 评论 -
sparkSQL中UDF的使用
在spark中使用sql时可能会想自定义一些函数,可以使 udf 来实现,下面举了几个简单易懂的例子。原创 2015-12-24 23:33:05 · 6450 阅读 · 2 评论 -
spark jdbc(mysql) 读取并发度优化
新博客文章地址下文以 mysql 为例在spark中使用jdbc在 spark-env.sh 文件中加入:export SPARK_CLASSPATH=/path/mysql-connector-java-5.1.34.jar任务提交时加入:--jars /path/mysql-connector-java-5.1.34.jar1. 单partition(无并发)调用函数def jdbc(url原创 2015-11-11 23:36:39 · 17571 阅读 · 2 评论 -
spark join broadcast优化
在大量数据中对一些字段进行关联。举例ipTable:需要进行关联的几千条ip数据(70k) hist:历史数据(百亿级别) 直接join将会对所有数据进行shuffle。使用broadcast将会把小表分发到每台执行节点上,基本就取消了shuffle的过程,运行效率大幅度提高。样本数据(2000w)性能测试对比小表没有进行broadcast进行了broadcast,可以看到连shuffle过程都省原创 2015-09-24 00:02:59 · 10795 阅读 · 0 评论 -
spark sql cache
1.几种缓存数据的方法例如有一张hive表叫做activity1.CACHE TABLE//缓存全表sqlContext.sql("CACHE TABLE activity")//缓存过滤结果sqlContext.sql("CACHE TABLE activity_cached as select * from activity where ...")CACHE TABLE是即时生效(eage原创 2015-09-22 21:58:21 · 14317 阅读 · 2 评论 -
解决spark sql关联(join)查询使用“or“缓慢的问题
1.需求描述将a表的数据与b表的两个字段进行关联,输出结果a表数据约24亿条b表数据约30万条2.优化效果优化后执行时间从数天减少到数分钟3.资源配置spark 1.4.1200core,600G RAM4.代码简化版(优化前)sqlContext.sql("name,ip1,ip2 as ip from table_A where name is not null and ip2 is not n原创 2015-10-20 19:55:56 · 9358 阅读 · 1 评论 -
SparkSQL JSON数据操作(1.3->1.4)
自定义schema格式 json串:{ "partner_code": "demo", "app_name": "web", "person_info": { "name": "张三", "age": 18 }, "items": [ { "item_id": 1,原创 2015-08-05 23:00:11 · 3145 阅读 · 1 评论 -
SparkSQL基础应用(1.3.1)
一.概述从1.3版本开始Spark SQL不再是测试版本,之前使用的SchemaRDD重命名为DataFrame,统一了Java和ScalaAPI。SparkSQL是Spark框架中处理结构化数据的部分,提供了一种DataFrames的概念,同时允许在Spark中执行以SQL,HiveQL或Scala表示的关系型查询语句。就易用性而言,对比传统的MapReduceAPI,说Spark的原创 2015-06-09 14:39:31 · 1854 阅读 · 0 评论 -
DataFrame使用mysql数据
错误提示: Exception in thread "main" java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/sparkSql?user=root&password=123 配置驱动的时候有两个大坑1.首先你要在SPARK_CLASSSPATH中加入mysql原创 2015-04-26 08:28:55 · 4233 阅读 · 0 评论