PySpark
是杰夫呀
记录学习的点点滴滴。
展开
-
PyCharm 安装配置 Pyspark环境
下载Spark安装包。解压后在Windows配置环境变量SPARK_HOME,值为spark安装包路径,并将$SPARK_HOME/bin加入Path。 本地安装Python、PyCharm。 点击PyCharm,点击File-Settings-project interpreter,配置Python编辑器。4.不管对不对,在pycharm上的project interpreter上下载py4j,因为很多博客说pyspark依赖这个模块。5. 随便打开一个project,pycharm右上角“原创 2020-07-30 16:18:19 · 4149 阅读 · 0 评论 -
Spark DataFrame 新增一列的四种方法
作为一个学习 Python spark 的菜鸟,刚开始学习 dataframe 的多样化处理有些新奇,对于新增一列的方法,经过多方查询学习,总结了如下四种常用方法,分享给大家。虽然以下语言是用Scala写的,但使用Python的原理也是一样,方法一:利用 createDataFrame 方法,新增列的过程包含在构建 rdd 和 schema 中 方法二:利用 withColumn 方法,新增列的过程包含在 udf 函数中 方法三:利用 SQL 代码,新增列的过程直接写入 SQL 代码中...原创 2020-07-22 16:47:09 · 6891 阅读 · 0 评论 -
PySpark使用withColumnRenamed重命名多个列
想使用spark withColumnRenamed函数同时更改两个列的名称,现在比较麻烦需要一对一的修改,想找到更便捷的方法。data = sqlContext.createDataFrame([(1,2), (3,4)], ['x1', 'x2'])data = (data .withColumnRenamed('x1','x3') .withColumnRenamed('x2', 'x4'))1.使用toDF方法。data.toDF('x3', 'x4')原创 2020-07-20 14:49:32 · 13679 阅读 · 0 评论 -
Pyspark 读取本地csv文件,插入parquet格式的hive表中
在CDSW上模型运行出结果,为csv文件。由于报表的需求,要将csv文件插入到parquet格式中的表中。在其中遇到了很多坑,在此记下来,希望能帮助到遇到同样问题的人。1、初始化配置创建Spark Session。(注意事项:Spark2.0版本开始将sqlContext、hiveContext统一整合为SparkSession)2、读取文件并转换为Spark DataFrame格...原创 2019-11-21 20:15:32 · 2972 阅读 · 0 评论 -
PySpark 切片并选择特定的行数
在PySpark需要选择特定的某些行,数据量巨大而没法转到pandas的dataframe操作。1. 如果内容为数值,可以用between函数筛选。参考资料:http://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.Column.between下面的例子,表示筛选出(id >= 5) 及...原创 2019-11-18 15:23:08 · 11075 阅读 · 6 评论 -
Pyspark 根据行内容拆分DataFrame
由于最近业务遇到了这个场景,而百度后没有找到解决方法。我是通过Stack Overflow的提问,获得了可以实现的答案。原问题地址是:https://stackoverflow.com/questions/58317153/how-to-split-the-pyspark-dataframe-based-on-the-content-of-the-line。如果有其他解决方法我也会及时更新...原创 2019-10-21 16:09:50 · 1695 阅读 · 0 评论 -
Pyspark 读取 txt 文件并生成 DataFrame
网上找了很多资料,例如 textFile 和wholeTextFiles方法。但这两个都是都是读取txt文件,然后生成RDD的格式。如果再从 RDD 转为Pyspark 的 DataFrame格式,那么就多此一举了。终于找到了直接读取 txt 文件并生成 DataFrame的方法,那就是 spark 的 read.txt 方法。实现代码如下:from pyspark.sql i...原创 2019-10-21 15:38:14 · 10374 阅读 · 0 评论 -
PySpark 统计词频并返回排名TOP N
输入:txt文本文件输出结果:[('技术', 48), ('百度', 45), ('模型', 38), ('语义', 31), ('分析', 30), ('情感', 25), ('NLP', 20), ('自然语言', 20), ('方法', 19), ('中', 18), ('用户', 17), ('观点', 16), ('计算', 16), ('主题', ...原创 2019-09-29 14:55:19 · 1528 阅读 · 0 评论 -
PySpark 统计所有词频并排序返回 DataFrame
上一篇文章已经实现了PySpark 统计词频并返回排名TOP N:https://blog.csdn.net/sinat_26811377/article/details/101208346发现有两个小缺点需要改一下,因此对代码做了修改。1. 统计所有词频。而不仅仅是统计TOP N的词频。2. 返回的结果保存为DataFrame。而不是用list。最终实现结果如下。输入文本(l...原创 2019-09-27 13:51:51 · 2189 阅读 · 0 评论 -
PySpark 利用Word2Vector计算词向量的相似度
1. 计算 list 中各元素的相似度输入(DataFrame格式):+--------------------+| sentence|+--------------------+|[a, b, a, b, a, b...||[a, b, a, b, a, b...|+--------------------+PySpark代码实现:from p...原创 2019-09-24 11:33:27 · 2687 阅读 · 0 评论 -
PySpark 统计词频并返回排名TOP N
输入文本(list格式):what do you dohow do you dohow do you dohow are you期望实现功能:统计文本中的词频,返回频次最高的TOP N。输出结果(list格式):do 6you 4how 3are 1what 1Pyspark 的实现代码:from operator import addfrom p...原创 2019-09-23 15:39:36 · 1696 阅读 · 0 评论 -
Pyspark中DataFrame与pandas中DataFrame之间的相互转换
Pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换:# pandas转sparkvalues = pandas_df.values.tolist()columns = pandas_df.columns.tolist()spark_df = spark.createDataFrame(values, columns)# spark转pand...原创 2019-08-23 00:35:41 · 13473 阅读 · 3 评论 -
PySpark报错ERROR Shell: Failed to locate the winutils binary in the hadoop binary path
在终端输入PySpark后,出现以下报错:ERROR Shell: Failed to locate the winutils binary in the hadoop binary pathjava.io.IOException: Could not locate executable C:\hadoop-3.1.2\bin\winutils.exe in the Hadoop bina...原创 2019-08-21 22:54:15 · 8282 阅读 · 0 评论 -
PySpark报错pyspark.sql.utils.IllegalArgumentException: 'Unsupported class file major version 56'
今天遇到下面的报错:py4j.protocol.Py4JJavaError: An error occurred while calling o41.collectToPython.: java.lang.IllegalArgumentException: Unsupported class file major version 56在网上查相似的问题,应该是JDK版本的原因。...原创 2019-08-19 11:09:38 · 14504 阅读 · 1 评论 -
Spark报错AttributeError: 'DataFrame' object has no attribute 'axes'
在把pandas中的DataFrame转换到Spark中的DataFrame时候,报错:AttributeError: 'DataFrame' object has no attribute 'axes'更新:查出原因了,不是转换出错,而是查看Spark中的DataFrame这一行为出了错误。在Pycharm里面想要直接查看Spark中的DataFrame,就会报错。...原创 2019-08-20 09:15:19 · 3379 阅读 · 0 评论 -
Spark中DataFrame与Pandas中DataFrame的区别
目录为何使用 PySpark DataFramePandas DataFrame 数据结构特性Spark DataFrame 数据结构与存储特性使用 Spark DataFrame 优势Spark toPandas 详解Spark与Pandas中的DataFrame的区别为何使用 PySpark DataFrame使用 pandas 进行数据处理,dataframe...原创 2019-08-20 00:24:32 · 9423 阅读 · 1 评论