spark
yisun123456
大数据开发、个性化推荐
展开
-
pyspark 使用函数regexp_replace 替换竖线|
pyspark 使用函数regexp_replace 替换竖线|原创 2023-01-30 16:38:15 · 522 阅读 · 1 评论 -
pyspark dataframe分位数计算
pyspark dataframe分位数计算原创 2022-08-04 17:09:22 · 1547 阅读 · 2 评论 -
pyspark explode时增加序号
对于Spark2.4+,可以使用带高阶函数 transformation的explode。from pyspark.sql import functions as Fdemo.select('pois').withColumn("pois2", F.explode(F.expr("""transform(pois,(x,i)-> struct(x as poi,(i+1) as poi_rn))""")))\.select('pois2.*','pois').show(truncate=Fa原创 2022-05-20 15:40:29 · 492 阅读 · 0 评论 -
pyspark.sql之实现collect_list的排序
通过利用pyspark.sql.Window实现collect_list的排序window_ = Window.partitionBy("userid").orderBy("stay_start_time")df42= df3.join(df41,'userid','inner').withColumn('lng_lat',concat_ws(',',col('stay_lng'),col('stay_lat')))\.withColumn("lng_lats",F.collect_list("ln原创 2022-05-16 16:27:38 · 1069 阅读 · 0 评论 -
pyspark jieba 集群模型 对文本进行切词
如果是单个机器或者是local模式,简单的方式就是在节点上pip install jieba就完事了。但是在集群上肯定不能安装啊。怎么办呢??spark可以使用自己的镜像。比如本地有一个conda的envs的环境。可以将这个打包,在提交任务的时候可以分发到各个executor上。spark-submit \--name seg_tags \--queue root.niubi_queue\--deploy-mode cluster \--driver-memory 10g \-.原创 2021-09-09 16:47:26 · 349 阅读 · 0 评论 -
scala 内部类使用小细节
对于Java 外部类调用内部类不用担心类别问题。比如outer1.foo(inner2)但是对于Scala 需要进行类型投影 也就是outer1.foo(inner2)是执行不了的,需要对foo(in:Outer#Inner)原创 2021-03-01 11:16:27 · 102 阅读 · 0 评论 -
spark shuffle
Shuffle 是数据从map端到reduce数据流转的一种形式,当发生join、groupby等操作的时候,父类数据将会根据key进行shuffle write当本地,然后reduce根据相同key进行shuffle read,这样就产生了同一个父RDD可能存在于多个子RDD中。在这个过程中主要有两种shuffle形式,hashshuffle是很早之前的一种方案,在map段进行shuffle write的时候,会产生大量的小文件,这会造成大量的IO开销,很容易造成找不到文件而报错,这时只能重跑stag原创 2020-12-01 09:41:44 · 78 阅读 · 0 评论 -
rdd.cache()和rdd.persist(Storage.MEMORY_ONLY)
rdd.cache()和rdd.persist(Storage.MEMORY_ONLY)cache 底层也是调用了persist,但是当内存不足时 persist会吃就会到磁盘,但是cache不会。所以在绝大数场景下最好使用persist原创 2020-11-07 21:30:40 · 237 阅读 · 0 评论 -
spark 加载tensorflow model注意事项
1.对于tensorflow训练后的模型需要查看模型的网络结构 在模型保存路径下执行 saved_model_cli show --dir=./ --all图中的name都是要spark加载时创建模型结构时用到的2.spark加载tf的模型原创 2020-09-18 10:30:46 · 548 阅读 · 0 评论 -
spark tensorflow 整合时出现的问题
使用spark分布式环境,训练和加载tensorflow。通常会将加载的模型广播出去,这个时候涉及两个问题:1.加载的模型的路径是hdfs,tensorflow.SavedModelBundle的load使用的是本地路径,所以需要使用sc.addFiles("",true),这个样保证hdfs数据get到环境路径下(本地路径);2.同时,加载的模型往往需要广播到各个节点,但是这个时候也容易报错,可以采用在udf内部或者各个partition中加载模型。...原创 2020-07-30 14:07:43 · 469 阅读 · 2 评论 -
spark UDF 问题
ERROR yarn.ApplicationMaster: User class threw exception: org.apache.spark.sql.AnalysisException: Resolved attribute(s) item_id#5636 missing from .... Attribute(s) with the same name appear in the operation: item_id. Please check if the right attribute.原创 2020-07-22 18:04:59 · 478 阅读 · 0 评论 -
spark开发调优,常见参数配置,大全
https://blog.csdn.net/vinfly_li/article/details/79415342原创 2019-11-14 11:16:51 · 270 阅读 · 0 评论 -
spark hive中的cube 、roll_up和grouping sets
hive简单总结cube(a,b,c)=>就是魔方,就是groupby()的a,b,c,ab,ac,bc,abc结果的union all用法:group by a,b,c with cuberollup(a,b,c)=>就是卷曲来,就是groupby() 的a,ab,abc的union all用法:group by a,b,c with rollupgroupin...原创 2019-10-21 16:36:37 · 705 阅读 · 0 评论 -
spark及其生态圈简介
http://www.ppvke.com/Blog/archives/20895原创 2017-08-11 11:57:11 · 694 阅读 · 0 评论 -
大数据开发文档 官网翻译中文
原文链接:http://www.apachecn.org/bigdata/spark/268.htmlApache Spark™ 是一个快速的, 用于海量数据处理的通用引擎.官方网址:http://spark.apache.org中文文档:http://spark.apachecn.org花了大概两周左右的时间,在原来Spark 2.0.2 中文文档版本的基础上,终于迭代出...转载 2019-05-27 15:40:50 · 249 阅读 · 0 评论 -
spark sql参数优化提高执行速度
具体现象 内存CPU比例失调 一个Spark任务消耗 120(executor)*4G = 480G内存仅仅使用120个 core.几个SprakSQL任务就将整个系统资源吃光. 设置超过40个executor,但未指定分区数,导致多数executor空闲. 原因分析 SparkSQL配置时Core与内存比例不恰当 没有指定executor核心数 ...转载 2019-05-27 16:43:22 · 3602 阅读 · 0 评论 -
spark dataframe 常见操作
spark dataframe派生于RDD类,但是提供了非常强大的数据操作功能。当然主要对类SQL的支持。在实际工作中会遇到这样的情况,主要是会进行两个数据集的筛选、合并,重新入库。首先加载数据集,然后在提取数据集的前几行过程中,才找到limit的函数。而合并就用到union函数,重新入库,就是registerTemple注册成表,再进行写入到HIVE中。不得不赞叹datafram...转载 2019-05-29 20:29:31 · 18672 阅读 · 0 评论 -
基于物品推荐和基于用户推荐计算的大致逻辑
基于用户推荐1.将以物品为key,聚合所有用户;2.两两计算出用户间的距离(计算矩阵的相似度)3.对每个用户倒排距离最近的20个,然后从这些用户中拿到打分最高的10个推荐给用户。基于物品推荐1.计算物品与物品之间有多个少相同用户(同一用户同时消费过的物品累加)2.计算物品间的相似度(两物品同时出现的用户数/各自用户数乘积.sqrt)3.拿到这些用户的top,然后再排序未...原创 2019-06-16 11:07:33 · 925 阅读 · 0 评论 -
idea 提交git常见操作
本文介绍使用IDEA控制Git操作关联本地Git客户端首先要根据系统环境安装Git客户端然后使用File --> Settings --> Version Control --> Git配置客户端安装目录创建本地仓库根据项目要求创建自己的项目然后使用VCS--> Import into Version Control ...转载 2019-06-25 19:00:15 · 20174 阅读 · 1 评论 -
cannot be resolved on the right side of the join. The right-side columns
ERROR yarn.ApplicationMaster: User class threw exception: org.apache.spark.sql.AnalysisException: USING column `user_id` cannot be resolved on the right side of the join. The right-side columns: [];...原创 2019-06-18 19:25:46 · 2217 阅读 · 0 评论 -
org.apache.spark.ml.linalg.SQLDataTypes.VectorType
org.apache.spark.ml.linalg.SQLDataTypes.VectorType原创 2019-06-24 15:40:15 · 330 阅读 · 0 评论 -
scala 生成空的数组并初始化
1.Array.ofDim[Double](3,4)生成3*4的二维数组,初始值为0.02.Array.ofDim[Double](3)生成length=3的数组,初始值为0.03.Array.emptyDoubleArray()生成一个泛型为double的空数组...原创 2019-06-28 09:59:38 · 8007 阅读 · 0 评论 -
spark ml bayes分类预测
训练语料格式自定义五个类别及其标签:0 运费、1 寄件、2 人工、3 改单、4 催单、5 其他业务类。从原数据中挑选一部分作为训练语料和测试语料建立模型测试并保存import org.apache.spark.ml.classification.NaiveBayesimport org.apache.spark.ml.evaluation.MulticlassClassifi...转载 2019-07-09 21:07:13 · 350 阅读 · 0 评论 -
Spark ML实现的中文文本分类–Naive Bayes
文本分类是指将一篇文章归到事先定义好的某一类或者某几类,在数据平台的一个典型的应用场景是,通过爬取用户浏览过的页面内容,识别出用户的浏览偏好,从而丰富该用户的画像。本文介绍使用Spark MLlib提供的朴素贝叶斯(Naive Bayes)算法,完成对中文文本的分类过程。主要包括中文分词、文本表示(TF-IDF)、模型训练、分类预测等。中文分词对于中文文本分类而言,需要先对文章进行分词,...转载 2019-07-09 21:12:17 · 811 阅读 · 0 评论 -
spark dataframe出现某个字段不在一个空的数组里
ERROR yarn.ApplicationMaster: User class threw exception: org.apache.spark.sql.AnalysisException: cannot resolve '`uid`' given input columns: [];;说明 加载的dataframe是一个空的,没有数据,查看分区是否正常...原创 2019-07-26 17:33:28 · 681 阅读 · 0 评论 -
spark常见错误解决方案
1、用./bin/spark-shell启动spark时遇到异常:java.net.BindException: Can't assign requested address: Service 'sparkDriver' failed after 16 retries!解决方法:add export SPARK_LOCAL_IP="127.0.0.1" to spark-env.sh2、j...转载 2019-05-15 15:53:20 · 26061 阅读 · 2 评论 -
spark dataframe schame 如何在spark数据中转换一个结构数组?
让我通过一个例子来解释我想做的事情。我们将首先创建一个dataframe,它包含一个行数组和嵌套行。我的整数还没有在dataframe中被抛出,它们是作为字符串创建的:import org.apache.spark.sql._import org.apache.spark.sql.types._val rows1 = Seq( Row("1", Row("a", "b"), "...转载 2019-04-24 19:21:54 · 846 阅读 · 1 评论 -
spark streaming 同时处理两个不同kafka集群的数据
如题,总是不那么完美,要处理的数据在两个不同的kafka集群里面,日子得过,问题也得解决,我们创建两个DStream,连接两个不同的kafka集群的不同topic,然后再把这两个DStream union在一起处理,代码如下: package com.kingnet import java.util import org.apache.spar...转载 2018-08-21 14:03:22 · 1771 阅读 · 0 评论 -
Kafka->Spark Streaming->mongodb
项目主要做实时,从kafka拉数据进行清洗保存到mongodb(注意:mongodb的save方法是根据_id替换整个事件),用空间数据查询geo环境(maven管理):dependency> groupId>org.scala-langgroupId> artifactId>scala-libraryartifactId> version>2.10.6转载 2017-11-15 10:28:06 · 1263 阅读 · 1 评论 -
Mongodb亿级数据量的性能测试
进行了一下Mongodb亿级数据量的性能测试,分别测试如下几个项目:(所有插入都是单线程进行,所有读取都是多线程进行)1) 普通插入性能 (插入的数据每条大约在1KB左右)2) 批量插入性能 (使用的是官方C#客户端的InsertBatch),这个测的是批量插入性能能有多少提高3) 安全插入功能 (确保插入成功,使用的是SafeMode.True开关),这个转载 2017-11-03 13:57:17 · 1050 阅读 · 0 评论 -
MongoDB Spark
MongoDB Spark Connector介绍支持读取和写入,即可以将计算后的结果写入MongoDB将查询拆分为n个子任务, 如Connector会将一次match,拆分为多个子任务交给spark来处理, 减少数据的全量读取MongoDB Spark 示例代码计算用类型Type=1的message字符数并按userid进行分组开发Maven dependency配置这里用的是m转载 2017-11-02 19:49:02 · 475 阅读 · 0 评论 -
spark mongodb
源码的github地址https://github.com/mongodb/mongo-spark,是mongodb发布的spark connection接口库,可以方便的使用spark读写mongodb数据1.rdd写入mongodb两种方式将生成的rdd写入mongodb,事例代码:val sc = getSparkContext(args)import c转载 2017-11-02 13:48:19 · 984 阅读 · 0 评论 -
基于python的spark mongodb
mongodb是一种文档型数据库,作为一个适用于敏捷开发的数据库,mongodb的数据模式可以随着应用程序的发展而灵活地更新。但是mongodb适合一次查询的需求,对于统计、分析(尤其是在需要跨表、跨库的情况下)并不是太方便,我们可以用spark来处理mongodb数据。架构图如下:我使用的spark版本是spark-1.6.2,mongodb版本是3.2。我主要接触了以下两种转载 2017-10-23 14:52:03 · 1837 阅读 · 0 评论 -
mongodb 索引的创建于删除
这些天项目改版,时间比较紧,博客也就没跟得上,还望大家见谅。 好,今天分享下mongodb中关于索引的基本操作,我们日常做开发都避免不了要对程序进行性能优化,而程序的操作无非就是CURD,通常我们又会花费50%的时间在R上面,因为Read操作对用户来说是非常敏感的,处理不好就会被人唾弃,呵呵。 从算法上来说有5种经典的查找,具体的可以参见我的算法速成系列,这其中转载 2017-09-19 17:46:28 · 694 阅读 · 0 评论 -
spark 操作文件
http://www.cnblogs.com/tonglin0325/p/6682367.html原创 2017-09-25 08:56:21 · 757 阅读 · 0 评论 -
对于kafka spark Streaming出现的问题1
当生产者发送消息 出现ERROR Error when sending message to topic test with key: null, value: 36 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) 而对于消费者不断循环 对于sparkStreaming原创 2017-10-09 10:25:20 · 1728 阅读 · 0 评论 -
spark的运行模式总结
刚接触Spark时,很希望能对它的运行方式有个直观的了解,而Spark同时支持多种运行模式,官网和书籍中对他们的区别所说不详,尤其是模式之间是否有关联、启动的JVM进程是否有区别、启动的JVM进程的作用是否都一样,等等这些都没有说明,也没有现成的资料可以查询。所以,我今天总结一下,供新手参考和学习(下述结论基于Spark2.1.0版本和hadoop2.7.3版本)1,测试或实验性质的本地运转载 2017-10-09 10:53:51 · 370 阅读 · 0 评论 -
sparkSQL mysql
首先是main 方法,创建SparkSession实例。 def main(args: Array[String]) { val sparkConf = new SparkConf().setAppName("SparkSQLDemo") sparkConf.setMaster("local") val spark = SparkSession.builder().a转载 2017-10-16 09:08:31 · 199 阅读 · 0 评论 -
sparksql\hive on spark\hive on mr
Hive on MapreduceHive的原理大家可以参考这篇大数据时代的技术hive:hive介绍,实际的一些操作可以看这篇笔记:新手的Hive指南,至于还有兴趣看Hive优化方法可以看看我总结的这篇Hive性能优化上的一些总结Hive on Mapreduce执行流程执行流程详细解析Step 1:UI(user interface) 调用 executeQuery...转载 2018-08-29 18:08:24 · 1191 阅读 · 0 评论 -
spark 参数
资源参数调优了解完了Spark作业运行的基本原理之后,对资源相关的参数就容易理解了。所谓的Spark资源参数调优,其实主要就是对Spark运行过程中各个使用资源的地方,通过调节各种参数,来优化资源使用的效率,从而提升Spark作业的执行性能。以下参数就是Spark中主要的资源参数,每个参数都对应着作业运行原理中的某个部分,我们同时也给出了一个调优的参考值。num-executors参数...转载 2018-12-21 21:11:58 · 188 阅读 · 0 评论