想通过配置调用agg方法, 不知如何构造spark.sql.Column, 所以研究了下, 记录下:
agg方法:
def agg(expr: Column, exprs: Column*): DataFrame = {
toDF((expr +: exprs).map {
case typed: TypedColumn[_, ……继续阅读 »
wangting
3年前 (2020-11-06) 462浏览
6个赞
Dependency
Spark将RDD之间的依赖分为窄依赖和宽依赖,源码中对应的定义分别为NarrowDependency和ShuffleDependency。
其中NarrowDependency又有两种OneToOneDependency和RangeDependency两种实现。
NarrowDependency
OneToOneDependency……继续阅读 »
wangting
4年前 (2019-11-18) 859浏览
4个赞
SortShuffleManager
Reader使用BlockStoreShuffleReader,Writer根据传入的ShuffleHandler选择使用UnsafeShuffleWriter,BypassMergeSortShuffleWriter,还是SortShuffleWriter
override def getReader……继续阅读 »
wangting
4年前 (2019-11-13) 959浏览
4个赞
复现问题
Spark 1.4中使用spark-shell执行如下操作
scala> sqlContext.read.load("/app/dc/yarn/QA/p.txt")
报如下错误:
Job aborted due to stage failure: Task 7 in stage 0.0 ……继续阅读 »
wangting
4年前 (2019-11-13) 1023浏览
3个赞
相关参数介绍:
参数
默认值
说明
spark.sql.output.codec
none
使用的序列化方式,如snappy,lzo等,默认为不压缩。
spark.sql.output.coalesceNum
200
写入到指定目录的数据合并后文件的个数,仅当spark.sql.output.merge设为true时生效。
……继续阅读 »
wangting
4年前 (2019-11-06) 1268浏览
4个赞
通过GeneratedBlockHandler实现对数据的存储和确认逻辑。
/** Class to handle blocks generated by the block generator. */
private final class GeneratedBlockHandler extends BlockGeneratorList……继续阅读 »
wangting
4年前 (2019-11-01) 863浏览
3个赞
Feature:Spark支持GBK文件读取功能
需求分析
Spark默认的Text输入格式处理同Hadoop相同,均默认以UTF-8编码处理。
如果源本件本身是其他格式编码的,如GBK,在Spark处理后读出就会是乱码。
例如一张有关餐馆信息的数据可能是:
4504812|聚品面馆
5623102|金米粒抓饭
5623112|湘下茶饭
……继续阅读 »
wangting
4年前 (2019-11-01) 1283浏览
3个赞
调度
调度相关配置说明详见下表:
配置项
默认值
说明
spark.scheduler.mode
FIFO
提交到同一个SparkContext的job的调度策略,有FIFO和FAIR两种。
Spark SQL
SQL组件相关配置说明详见下表:
配置项
默认值
……继续阅读 »
wangting
4年前 (2019-10-29) 1019浏览
4个赞
Dataset是1.6版本引入的新的实验接口, 整合了RDD的优势(强类型, 支持lambda方法)和Spark SQL执行引擎的各种优化. Dataset可以由JVM对象来构造并且使用transformation来变换(map, flatMap, filter等等). Dataset本身是DataFrame API的一种扩展, 它提供了类型安全, 面向对象……继续阅读 »
wangting
4年前 (2019-10-17) 1098浏览
3个赞
Sql由SQLContext处理,HQL由HiveContext处理。二者使用不同的parser进行解析。
Sql parser的实现在Spark SQL catalyst源码中,基于scala ddl paser的库文件实现了一套词法语法分析器。
HQL是SQL在Hive中的”方言”,它的解析借助开源语法分析器antrl实现。
在H……继续阅读 »
wangting
4年前 (2019-10-14) 1217浏览
5个赞
如果是读取hdfs的文件,一般来说,partition的数量等于文件的数量。
如果单个文件的大小大于hdfs的分块大小,partition的数量就等于 “文件大小/分块大小”。
同时,也可以使用rdd的repartition方法重新划分partition。
另外,在使用聚合函数比如 reducebykey, groupbykey,可以通过指定partitio……继续阅读 »
wangting
4年前 (2019-10-14) 1024浏览
6个赞
对query按PV排序的时候, 特别慢, 原因是query往往很长尾, 排序的时候分桶不均匀,
排序时候在PV后面加一个随机数可以解决.
queryList.sortBy(x => (x.pv, Random.nextInt), ascending = false)
……继续阅读 »
wangting
4年前 (2019-10-14) 999浏览
3个赞
Spark 1.4 on Yarn的计算资源参数配置同Spark 1.2区别
问题:
Spark 1.4 on Yarn的计算资源参数配置同Spark 1.2有何区别。
解答:
Spark 1.2中:
通过spark.cores.max控制总核数,运行时会尽可能满足。
通过spark.executor.memory控制单个executor占用总内存。
但在……继续阅读 »
wangting
4年前 (2019-10-12) 799浏览
4个赞
Spark 1.4执行SQL查询过程中发现driver端Spark作业进程占用内存过大
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5109 liuxinmi 20 0 9152m 8.5g 18m S 99.9 13.5 7:04.13 java
15632 liuxinmi 20 0……继续阅读 »
wangting
4年前 (2019-10-12) 783浏览
4个赞
报错信息如下:
org.apache.spark.SparkException: Job aborted due to stage failure:
Serialized task 6:0 was 12518780 bytes which exceeds spark.akka.frameSize (10485760 bytes).
Consider usin……继续阅读 »
wangting
4年前 (2019-10-12) 1215浏览
4个赞
spark和mapreduce如果运行时报如下错误:
java.io.IOException: No space left on device
原因如下:
1) 如果是driver端机器抛出该异常,一般是/root/tmp 空间不够了。
可以通过配置spark.local.dir参数指定自定义的tmp目录。
2) 如果是集群executor端机器抛出该异常,……继续阅读 »
wangting
4年前 (2019-10-12) 1170浏览
4个赞
执行类似 xxx.write.format(“parquet”).save(‘xxxx’) 的操作。
虽然UI上显示completed
但是后台会hold主进程 一段时间,有时候几分钟,有时候十几分钟
最后hang住的原因是hadoop2.x commit job是在driver端单线程做的,当结……继续阅读 »
wangting
4年前 (2019-10-12) 897浏览
4个赞
spark在运行过程中出现task fail 报如下错误:
org.apache.spark.shuffle.FetchFailedException: java.io.FileNotFoundException: /home/disk2/spark/spark-a26b1ea4-d622-4af0-88c9-d73ebba7f79e/spark-local……继续阅读 »
wangting
4年前 (2019-10-12) 1625浏览
5个赞
执行类似如下形式的Sql:
select user_id from qt_revert_for_dmp where ((attr[‘535951390’] is not null and get_json_object(attr[‘535951390′],’$.yymmdd’)>2……继续阅读 »
wangting
4年前 (2019-10-12) 1240浏览
5个赞
spark运行过程中打印如下信息:
15/06/23 17:50:57 ERROR SparkDeploySchedulerBackend: Asked to remove non-existent executor 284 15/06/23 17:50:57
INFO AppClient$ClientActor: Executor added: app-2……继续阅读 »
wangting
4年前 (2019-10-12) 1197浏览
3个赞