spark
听见下雨的声音hb
一期一会,IT人生
展开
-
spark dataframe 解析复杂 json
package com.analysys.bacth.etl.stgimport com.analysys.logger.AnalysysLoggerimport org.apache.log4j.{Level, Logger}import org.apache.spark.sql.types._import org.apache.spark.sql.{SparkSession, functions}object StgDevUserNetInfo extends AnalysysLogge.原创 2020-07-06 16:48:42 · 810 阅读 · 0 评论 -
scala笔记
//映射反转的时候注意:如果v有重复,k会丢失,丢失顺序与插入顺序相反 即后插入的先丢失for ( (k,v) yield (v,k)原创 2018-01-11 19:08:06 · 154 阅读 · 0 评论 -
Hive不同存储格式下的压缩算法对比
压缩算法 Text格式 Parquet格式 ORC格式 不压缩 119.2G 54.1G 20.0G Snappy压缩 30.2 G 23.6G 1...原创 2020-04-27 19:15:34 · 775 阅读 · 0 评论 -
Spark写入HBase(BulkLoad方式)
在使用Spark时经常需要把数据落入HBase中,如果使用普通的Java API,写入会速度很慢。Spark提供了Bulk写入方式的接口。那么Bulk写入与普通写入相比有什么优势呢?BulkLoad不会写WAL,也不会产生flush以及split。 如果我们大量调用PUT接口插入数据,可能会导致大量的GC操作。除了影响性能之外,严重时甚至可能会对HBase节点的稳定性造成影响。但是采用Bul...原创 2020-04-20 14:36:19 · 1415 阅读 · 1 评论 -
Mac Intellij IDEA中pyspark的环境搭建
背景 默认python项目已经导入idea,Mac本地已经安装好python。步骤1、Mac本地安装pysparkbrew install pandoc##不可以用root安装,而且安装很慢;建议下载Mac安装包手动安装 http://johnmacfarlane.net/pandoc/installing.htmlpip install pyspark==...原创 2019-11-27 11:36:27 · 862 阅读 · 0 评论 -
Spark Core 学习整理
闭包闭包的大致作用就是:函数可以访问函数外面的变量,但是函数内对变量的修改,在函数外是不可见的。首先,闭包是一个函数,然后,也是最本质的地方:这个函数内部会引用(依赖)到一些变量,这些变量既不是全局的也不是局部的,而是在定义在上下文中的(这种变量被称为“自由变量”,我们会在稍后的例子中看到这种变量),闭包的“神奇”之处是它可以“cache”或者说是持续的“trace”它所引用的这些变量。...原创 2019-09-26 11:33:19 · 161 阅读 · 0 评论 -
Hive向SparkSQL迁移总结
Hive & SparkSQL使用不同点hive中对空格、制表符、大小写的不明感,spark-sql中敏感(通过压缩sql,去掉敏感符号;字段大小写要匹配) 在shell中提交hive -e 和spark-sql -e,spark-sql需要用""显式的把字符串引起来 spark-sql -e 执行时转义符号需要修改为[],而不可以使用//SparkSQL优化(Spark2...原创 2019-07-11 11:10:26 · 2331 阅读 · 14 评论 -
Hive on Spark调优
之前在Hive on Spark跑TPCx-BB测试时,100g的数据量要跑十几个小时,一看CPU和内存的监控,发现POWER_TEST阶段(依次执行30个查询)CPU只用了百分之十几,也就是没有把整个集群的性能利用起来,导致跑得很慢。因此,如何调整参数,使整个集群发挥最大性能显得尤为重要。Spark作业运行原理spark-base-mech.jpg详细原理见上图。我们使用sp...转载 2017-08-10 17:31:26 · 22172 阅读 · 3 评论 -
spark aggregate函数详解
aggregate算是spark中比较常用的一个函数,理解起来会比较费劲一些,现在通过几个详细的例子带大家来着重理解一下aggregate的用法。1.先看看aggregate的函数签名在spark的源码中,可以看到aggregate函数的签名如下:def aggregate[U: ClassTag](zeroValue: U)(seqOp: (U, T) => U, combOp...转载 2019-08-19 16:24:56 · 3136 阅读 · 0 评论 -
Spark UI 学习整理
Spark-CoreSpark-SqlSQLHiveTableScan:扫描hive表 WholeStageCodegen:将多个operators合并成一个java函数,从而提高执行速度 HashAggregate:基于Hash Map 的聚合实现,如sum,count Project:投影/只取所需列 Exchange:stage间隔,产生了shuffle Filter...原创 2019-08-19 11:26:02 · 475 阅读 · 0 评论 -
spark partition 理解 / coalesce 与 repartition的区别
一.spark 分区 partition的理解:spark中是以vcore级别调度task的。如果读取的是hdfs,那么有多少个block,就有多少个partition举例来说:sparksql 要读表T, 如果表T有1w个小文件,那么就有1w个partition这时候读取效率会较低。假设设置资源为 --executor-memory 2g --executor-cores 2 --...转载 2019-08-15 11:12:44 · 443 阅读 · 0 评论 -
Spark DataFrame 学习整理
import org.apache.spark.sql.{SQLContext, Row}import org.apache.spark.sql.types.{StringType, IntegerType, StructField, StructType}import org.apache.spark.sql.hive.HiveContextimport sqlContext.impli...原创 2019-03-11 17:36:17 · 208 阅读 · 0 评论 -
SparkStreaming-Kafka数据的消费
1、保证元数据恢复,就是Driver端挂了之后数据仍然可以恢复// 创建StreamingContext对象val ssc: StreamingContext = StreamingContext.getOrCreate(checkpointPath, () => BatchProcessTopic.createContext(brokers, topics, batc...原创 2019-05-23 15:52:48 · 685 阅读 · 0 评论 -
SparkStreaming-日志的等级的设置
我们在构建项目的时候日志等级设置是很有必要,日志太多太乱会直接影响我们的判读,SparkStreaming由于是流式处理日志会更加的多。1、屏蔽系统日志//请注意是apache.log4j不是org.slf4jimport org.apache.log4j.{Level, Logger}// 屏蔽不必要的日志 ,在终端上显示需要的日志 Logger.getLogger("...原创 2019-05-23 15:44:36 · 2046 阅读 · 0 评论 -
jieba分词器关键词提取在spark中的应用(java版-scala调用)
启动spark-shell## jieba-analysis-1.0.3-SNAPSHOT.jar 为bluemapleman提供,作者进行了打包。链接: https://pan.baidu.com/s/1FeSkrueoXB303_KnsExPog 提取码: negi spark-shell--jars jieba-analysis-1.0.3-SNAPSHOT.jar执行代码...原创 2019-05-07 11:49:47 · 2747 阅读 · 0 评论 -
spark-sql 手动动态指定控制台输出日志级别
登录服务器客户端 把spark/conf/log4j.properties.template 复制到A用户根目录 (改名为log4j.properties),修改其中的一行为log4j.rootCategory=WARN, console 启动spark-sql spark-sql--conf"spark.driver.extraJavaOptions=-Dlog...原创 2019-04-18 16:45:28 · 924 阅读 · 0 评论 -
Spark项目问题记录
项目:analysys-etlJava模块1、Base64问题import org.apache.commons.codec.binary.Base64;这个包 版本之间存在问题。替换为import org.apache.commons.net.util.Base64;2、@data在idea中利用lombok插件,maven编译不通过(未解决)直接生成get、set方法...原创 2019-02-26 18:29:54 · 303 阅读 · 0 评论 -
Spark问题记录
Q:执行sql写入本地文件时产生java.lang.OutOfMemoryError: GC overhead limit exceededA:由于生成的文件过大,造成多个节点同时写入本地文件时内存溢出,发生GCQ:读取文件时 org.apache.hadoop.ipc.RemoteException(java.io.IOException):---过多的IPC、RPCA:由于读取的...原创 2018-10-12 15:50:52 · 496 阅读 · 0 评论 -
Spark DataFrame pivot()实现分组、透视、求和
问题:对A列和B列进行分组,然后在C列上进行透视操作并对D列数据进行求和实现功能如下:实现方式:Spark中语法为:df.groupBy(“A”, “B”).pivot(“C”).sum(“D”),显然这种语法格式非常直观,但这其中也有个值得注意的地方:为取得更好的性能,需要明确指定透视列对应的不同值,例如如果C列有两个不同的值(small 和 ...原创 2019-03-07 16:10:37 · 7424 阅读 · 0 评论 -
sparkStreaming kafka学习笔记
1、bootstrap-servers 和 broker.list区别查看源代码后发现broker.list是旧版本命令原创 2018-11-07 16:13:50 · 304 阅读 · 0 评论 -
sparkstreaming2.1-kafka-zk的scala程序pom.xm文件
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://原创 2018-11-06 14:20:15 · 539 阅读 · 0 评论