pyspark
木给哇啦丶
这个作者很懒,什么都没留下…
展开
-
Spark/PySpark中map与flatMap
map将函数作用到数据集的每一个元素上,生成一个新的分布式的数据集(RDD)返回map函数的源码:def map(self, f, preservesPartitioning=False): """ Return a new RDD by applying a function to each element of this RDD. >>> rdd = sc.parallelize(["b", "a", "c"]) >>> s原创 2020-10-10 10:26:04 · 2782 阅读 · 1 评论 -
dataframe中head() first() take() collect() show() tail() limit()的关系
first() = head(1) head() 底层调用 take()show() 底层调用的take()多了一层类型转换将值转化为字符串 多了truncate参数,截取字符串功能take() 调用collect() + limit()collect()触发runjob()执行任务tail() 返回dataframe最后一行,可能会OOM方法及源码截图和部分函数描述collect()limit()take()Take the fir...原创 2020-08-06 22:46:40 · 1452 阅读 · 0 评论 -
python线程池ThreadPoolExecutor使用案例
# -*- coding: utf-8 -*-from concurrent.futures import waitfrom concurrent.futures import ALL_COMPLETED, ThreadPoolExecutorfrom pyspark import SparkConf, SparkContextfrom pyspark.sql import HiveContextconf = SparkConf()conf.set("spark.yarn.queue"...原创 2020-07-02 22:07:21 · 758 阅读 · 0 评论 -
pyspark、hive和dateframe临时udf使用案例
背景 在我们数据开发过程中业务中有很多计算时间差值的场景,公司业务数据时间格式基本是:yyyyMMdd,,而spark或者hive提供内置函数datediff(),需要传入的时间参数格式:yyyy-MM-dd,为开发时简化代码量与代码可读性,我们通过创建临时udf可以灵活的解决该问题。pyspark import time def dd_datediff(date_now, date_ago, date_type="day"): date_now = time...原创 2020-07-02 22:03:38 · 366 阅读 · 0 评论 -
pyspark读取指定分隔符文件,dataframe与csv互转
dataframe转csv,并将文件保存至HDFS,然后下载到本地dfResult = spark.sql("select * from tmp.lanfz_dirty_imei")dfResult.write.format("csv").option("header","true").mode("overwrite").save("/user/lanfz/dirty_imei/")注意:结果目录可能会产生多个文件提供以下两种方式合并文件,并获取到本地方式一(适用较大数据量)dfR.原创 2020-06-28 21:54:40 · 3012 阅读 · 2 评论 -
PySpark UDF使用详解及代码示例
案例一在hive或spark计算中需要注意两数之和或之差如果其中有一个为null,那么结果等于null,所以提供以下udf自定义函数求两数之和def diy_add(a, b):r = Noneif a is None:if b is None:return relse:return belse:if b is None:return...原创 2020-06-22 20:54:19 · 1499 阅读 · 0 评论 -
pyspark行转列、列转行或宽表转窄表、窄表转宽表
列转行(宽表转窄表)from pyspark.sql import functions as Fdef unpivot(df, keys): #参数说明 dfdataframekeys 待转换表中需要保留的主键key,以list[]类型传入 #转换是为了避免字段类不匹配,统一将数据转换为string类型,如果保证数据类型完全一致,可以省略该句df = df.select(*[F.col(_).astype("string") for ...原创 2020-06-11 11:58:39 · 4273 阅读 · 3 评论 -
PySpark中UDF函数使用
Pyspark内置函数有时不能解决全部需求,这时需要我们写一些udf来解决实际业务,Pyspark中提供了此种方法,脚本中导入 from pyspark.sql import functions as F便可轻松实现,我这里是解决经纬问题,写的一个udf示例。(部分代码已省略)#!/usr/bin/python3.6# -*- coding: utf-8 -*-from pyspark.sql import functions as Ffrom pyspark.sql...原创 2020-06-06 15:37:54 · 2273 阅读 · 0 评论 -
Spark Executor 内存管理
本文主要对 Executor 的内存管理进行分析,下文中的 Spark 内存均特指 Executor 的内存堆内内存和堆外内存作为一个 JVM 进程,Executor 的内存管理建立在 JVM 的内存管理之上,此外spark还引入了堆外内存(不在JVM中的内存),在spark中是指不属于该executor的内存。堆内内存:由 JVM 控制,由GC(垃圾回收)进行内存回收,堆内内存的大小,由 Spark 应用程序启动时的 executor-memory 或 spark.executo...原创 2020-06-04 21:23:06 · 2271 阅读 · 0 评论 -
Spark DataFrame中的join类型inner join, left join, right join, full join
Spark DataFrame中join与SQL很像,都有inner join, left join, right join, full join那么join方法如何实现不同的join类型呢?看其原型def join(right : DataFrame, usingColumns : Seq[String], joinType : String) : DataFramedef j...原创 2020-04-20 22:52:32 · 3017 阅读 · 0 评论 -
pyspark dataframe 字段类型转换 pandas和pyspark的dataframe互转
知识点:1、使用pyspark读取csv:spark.read.format("csv").load('/user/data.csv',header=True, inferSchema="true")2、dataframe补充空值:fillna()3、dataframe字段表示方式:"APP_HOBY_CASH_LOAN"或df.APP_HOBY_CASH_LOAN或data_df["...原创 2020-04-16 18:35:43 · 4141 阅读 · 3 评论