摘要:
rdd的计算对于transformation是lazy形式,只有在ation时才会进行计算。并且计算结果默认是临时的,用过即丢弃。 1.对多次使用的RDD进行(缓存)持久化: cache/persist后的rdd,没有使用前千万不要unpersist,unpersist就把缓存给清空了。 cache 阅读全文
摘要:
SparkStreaming中foreachRDD SparkStreaming是流式实时处理数据,就是将数据流按照定义的时间进行分割(就是“批处理”)。每一个时间段内处理的都是一个RDD。而SparkStreaming中的foreachRDD方法就是在处理每一个时间段内的RDD数据。 DStrea 阅读全文
摘要:
Spark 读写HBase优化 读数据 可以采用RDD的方式读取HBase数据: val conf = HBaseConfiguration.create() conf.set(TableInputFormat.INPUT_TABLE, hTabName) //设置查询的表名 val rdd = s 阅读全文
摘要:
参考:jianshu.com/p/9d2d225c1951 监听socket获取数据,代码如下:这里使用nc -lk 9999 在ip为10.121.33.44的机器上发送消息 object SocketStream { def main(args: Array[String]): Unit = { 阅读全文
摘要:
/** * scala模型的main(args:Array[String])是业务执行入口 * org.apache.spark.{SparkConf, SparkContext} * val sparkConf =new SparkConf().setAppName(appName) * val 阅读全文
摘要:
分组求最新视图 目前业界主流的求最新视图的方法有两种: 求最大值自连接 --假设现在有表T:user_id,update_time --分组求最大值自连接 select user_id, max(update_time) as max_time from t group by user_id joi 阅读全文
摘要:
数据倾斜 当某个job长时间运行没有结束,可能发生了数据倾斜。 简单的讲,数据倾斜就是我们在计算数据的时候,数据的分散度不够,导致大量的数据集中到了一台或者几台机器上计算,这些数据的计算速度远远低于平均计算速度,导致整个计算过程过慢。 hive 比如说在Hive中,经常遇到count(distinc 阅读全文
摘要:
api差异参考官网地址:https://spark.apache.org/docs/2.1.1/sql-programming-guide.html#upgrading-from-spark-sql-16-to-20 1.SparkSession is now the new entry point 阅读全文
摘要:
需求业务端写入数据时会存在不同批次号的重复数据,领导需要说用存储过程+数据库事件来定时清理mysql表冗余数据,那就这么整了 配置定时事件event,一天清理一次 检查数据库是否开启event调度 Ok 阅读全文
摘要:
序列化问题多事rdd遍历过程中使用了没有序列化的对象。 1.将未序列化的变量定义到rdd遍历内部。如定义入数据库连接池。 2.常量定义里包含了未序列化对象 ,提出去吧 如下常量要放到main里,不能放到rdd的遍历中。 阅读全文
摘要:
给union的前后sql加括号就可以解决 阅读全文
摘要:
1.spark api主要分两种:转换操作和行动操作。如果在转化操作中println spark打印了 我也看不到。 2.打印RDD的元素 参考:https://strongyoung.gitbooks.io/spark-programming-guide/rdds/rdd_operations/p 阅读全文
摘要:
error:org.apache.spark.shuffle.FetchFailedException: Failed to connect to xxxx/xx.xx.xx.xx:xxxx 定位来定位去与防火墙等无关。反复查看日志: 2019-09-30 11:00:46,521 | WARN | 阅读全文
摘要:
failure: Lost task 18.3 in stage 17.0 (TID 59784,XXXXX, executor 19): java.lang.IllegalArgumentException: Row length is 0 场景是写入hbase: 当取出的line._1做为row 阅读全文
摘要:
之前在简书写,但是被简书封号,只能在手机app查看自己的文章列表,没搞懂。写的东西很烂自己也知道。 但是无缘无故被封号,还将所有文章同步到了这个“台部落“。账号都爬过去了,不是本人操作,都被爬到了这个网站https://www.twblogs.net/ 索性搬家到博客园了,文章依然很烂,就当笔记记下 阅读全文
摘要:
1.foreach 2.foreachPartition 说明: foreachPartition属于算子操作,可以提高模型效率。比如在使用foreach时,将RDD中所有数据写Mongo中,就会一条数据一条数据地写,每次函数调用可能就会创建一个数据库连接,此时就势必会频繁地创建和销毁数据库连接,性 阅读全文
摘要:
如果一次处理后的数据太多,一下字发送kafka就会导致kafka对赛,那就然他睡几毫秒。不可可根据业务数据调试。每分钟100万左右就可以了吧。 阅读全文
摘要:
import org.junit.Test; import java.util.*; import java.util.stream.Collectors; /** * Created by shaozhiqi on 2019/9/26 */ public class testLam { @Test public void testCreateThread() { Thread thread1 = 阅读全文
摘要:
"""时间处理 """ __author__on__ = 'shaozhiqi 2019/9/25' # !/usr/bin/env python3 # -*- coding: utf-8 -*- # ------------------------------------------datetime--------------------------------------- from ... 阅读全文
摘要:
""" """ __author__on__ = 'shaozhiqi 2019/9/24' # !/usr/bin/env python3 # -*- coding: utf-8 -*- # 在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict: d = dict(name='Bob', age=20, score=88) # 我们把变量从内存中变成可存储或传输的过程称之... 阅读全文
摘要:
""" file path """ __author__on__ = 'shaozhiqi 2019/9/23' # !/usr/bin/env python3 # -*- coding: utf-8 -*- # os模块的基本功能 import os print(os.name) # nt # 如果是posix,说明系统是Linux、Unix或Mac OS X,如果是nt,就是Windows系统 阅读全文
摘要:
""" StringIO和BytesIO """ __author__on__ = 'shaozhiqi 2019/9/23' # !/usr/bin/env python3 # -*- coding: utf-8 -*- # 很多时候,数据读写不一定是文件,也可以在内存中读写。 # StringIO顾名思义就是在内存中读写str。 # 要把str写入StringIO,我们需要先创建一个Strin 阅读全文
摘要:
""" 文件读写 """ __author__on__ = 'shaozhiqi 2019/9/23' # !/usr/bin/env python3 # -*- coding: utf-8 -*- # 读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示符 f = open('D:/temp/shao.txt', 'r', encoding='UTF-8') p 阅读全文
摘要:
""" 单元测试 """ __author__on__ = 'shaozhiqi 2019/9/23' class Dict(dict): def __init__(self, **kw): super().__init__(**kw) def __getattr__(self, key): try: return... 阅读全文
摘要:
""" 调试 """ __author__on__ = 'shaozhiqi 2019/9/23' # 调试程序 # 1. print打印,没问题了上线还得删掉 # 2. 断言、assert # n不等于0则继续执行,否则走断言的处理,Python解释器时可以用-O参数来关闭assert # def foo(s): # n = int(s) # assert n != 0, ... 阅读全文
摘要:
""" 异常处理 """ __author__on__ = 'shaozhiqi 2019/9/19' # 大量的代码来判断是否出错: # def foo(): # r = some_function() # if r == (-1): # return (-1) # # do something # return r # # # def ba... 阅读全文
摘要:
""" """ __author__ = 'shaozhiqi' # 动态语言和静态语言最大的不同,就是函数和类的定义,不是编译时定义的,而是运行时动态创建的。 # type()函数既可以返回一个对象的类型,又可以创建出新的类型,比如,我们可以通过type()函数创建出Hello类,而无需通过class Hello(object)...的定义: def fn(self, name='wor... 阅读全文
摘要:
""" """ __author__ = 'shaozhiqi' # 当我们需要定义常量时,一个办法是用大写变量通过整数来定义,例如月份: JAN = 1 FEB = 2 MAR = 3 # 好处是简单,缺点是类型是int,并且仍然是变量 # Enum from enum import Enum Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 阅读全文
摘要:
""" """ __author__ = 'shaozhiqi' # Python的class中还有许多有特殊用途的函数,可以帮助我们定制类 # str class Student(object): def __init__(self, name): self.name = name print(Student('shaozhiqi')) # <__main__.Student object at 阅读全文
摘要:
""" 多重继承 """ __author__ = 'shaozhiqi' # start class Animal(object): pass # 哺乳动物 class Mammal(Animal): def __init__(self): print(' 非蛋生。。。。。') # 鸟类 class Bird(Animal): def __init__(self): print(' 蛋生。。。。 阅读全文