Spark
文章平均质量分 60
Souvenirser
劳逸结合!
展开
-
Spark Hive SQL parse_url获取HOST parse_url(referrer,‘HOST‘) 转为java代码
【代码】Spark Hive SQL parse_url获取HOST parse_url(referrer,'HOST') 转为java代码。原创 2023-12-12 19:24:28 · 543 阅读 · 0 评论 -
Spark 判断目录是否存在, 若存在则删除,若不存在则创建
【代码】Spark 判断目录是否存在, 若存在则删除,若不存在则创建。原创 2023-03-08 20:18:24 · 333 阅读 · 0 评论 -
Spark show展示所有字段,控制输出行数(不隐藏字段)
当输出字段过多或者过长时, spark会默认隐藏后面的字段,不好debug,我们只需要在 show() 括号内输入truncate = false即可. 默认为true, 为true时则隐藏.控制输出行数并且展示所有字段,不进行隐藏原创 2023-02-16 19:41:50 · 2904 阅读 · 0 评论 -
Spark2升级为Spark3 UDF org.apache.spark.sql.AnalysisException: You‘re using untyped报错解决方案
Spark2升级Spark3 org.apache.spark.sql.AnalysisException: You're using untyped Scala UDF, which does not have the input type informationUser class threw exception: org.apache.spark.sql.AnalysisException: spark_catalog requires a single-part namespace,but got原创 2023-01-31 15:46:14 · 1132 阅读 · 0 评论 -
Spark udf合并两个Array / List / Seq为一个Array / List / Seq,将所有元素放到一个Array / List / Seq中
但是Spark中没有实现类似功能的算子, 于是自己写了一个UDF去实现, 话不多说, 贴代码供大家参考.即: 合并两个Array[String]原创 2023-01-16 16:03:31 · 636 阅读 · 0 评论 -
spark5种去重方式,快速去重
双重group by将去重分成了两步,是分组聚合运算,group by操作能进行多个reduce任务并行处理,每个reduce都能收到一部分数据然后进行分组内去重,不再像distinct只有一个reduce进行全局去重.sql中最简单的方式,当数据量小的时候性能还好.当数据量大的时候性能较差.因为distinct全局只有一个reduce任务来做去重操作,极容易发生数据倾斜的情况,整体运行效率较慢.DataFrame中,可以先将分区内数据进行排序,然后通过dropDuplicates将重复的数据删除.原创 2023-01-01 14:13:17 · 7188 阅读 · 0 评论 -
Spark优化大全总结含泪实操,含数据格式/数据倾斜/算子优化/Join优化/参数调优等
Spark优化总结大全,含数据格式/数据倾斜/算子优化/Join优化/参数调优等,spark任务重RDD持久化数据在Executor内存中占用比例为60%,当数据量较大内存放不下时,就会溢写到磁盘,如果spark任务中有较多需持久化的RDD,建议调大此参,避免内存不足时数据只能写磁盘的情况.若没有或者发现作业频繁gc或者运行较慢时,则可适当调小此比例。如果觉得数据发生了倾斜(数据分布不均,很多数据都打到了一个分区中),建议在Join之前先进行Repartition操作,增加分区数,这样可以将分区内的数据打散原创 2022-12-28 16:46:31 · 3183 阅读 · 0 评论 -
记录解决HashMap与HashPartition中数据量过大发生Hash冲突问题
当HashMap的Key是较长的字符串且数据量较大时,极容易出现Hash冲突,此时建议将Key做进一步处理, 如MD5后再塞回,可降低Hash冲突率,减少Hash重复的数量。原创 2022-12-22 20:46:16 · 412 阅读 · 0 评论 -
浅谈Spark groupBy、reduceByKey与aggregateByKey,解决频繁Full GC问题
groupBy效率较慢,可以使用reduceByKey / aggregateByKey替代groupBy, 因为这两个算子可以进行预聚合. 但是需要先将DataFrame转为RDD.Spark中建议不要使用过于复杂的数据结构,如: HashMap[String, String], ArrayList等,建议使用最简单的数据结构.预聚合部分是将多个String转为Array[String],减少了数据结构中Array的使用.后面再聚合部分是将预聚合中的Array[String]进行再聚合.原创 2022-12-20 20:30:42 · 1261 阅读 · 1 评论 -
对比Spark repartitionAndSortWithinPartitions 与 repartition + sortByKey,附代码示例
我们刚讲到 repartition 源码中用的是 Murmur3Hash 方式进行Hash的, 这也无法避免次问题, 那么repartition 和 repartitionAndSortWithinPartitions都无法完全避免HashCode冲突的问题, 我们应该怎么办呢?通过代码我们可以看到, 这里是使用对logid进行hashCode, 然后取 % 进行分区, 当数据量过大时, 就会出现Hash冲突的问题.当然, 还可尝试先md5再hashCode,效果与上述结果类似.原创 2022-12-20 11:17:22 · 990 阅读 · 0 评论 -
Kafka组件、安装、常用操作命令、分区计算及负载均衡等干货说明
Kafka是什么,集群核心组件,优点,Topic,Broker,Partition,Offset,Zookeeper(ZK),Producer,Consumer(Group),Kafka的安装,Kafka配置环境变量,Kafka常用操作命令,启动命令,查看服务器中所有topic,创建topic、删除topic、shell命令发送、消费信息,对分区数进行修改,Logs日志查看,Segment,数据存储机制,解决负载均衡,分区数计算,数据分区,保证数据不丢失,Receiver和Direct方式,存储和实时处理原创 2018-11-28 11:07:06 · 1902 阅读 · 1 评论