草庐IT

PySpark3

全部标签

python - MAP (PySpark) 返回的元组列表(或迭代器)

我有一个映射器方法:defmapper(value):...forkey,valueinsome_list:yieldkey,value实际上,我需要的与普通的wordcount示例相差无几。我已经有了工作脚本,但前提是映射器方法看起来像这样:defmapper(value):...returnkey,value这是它的调用方式:sc.textFile(sys.argv[2],1).map(mapper).reduceByKey(reducer).collect()我花了2个小时尝试编写支持映射器中的生成器的代码。但不能那样做。我什至同意只返回一个列表:defmapper(value)

python - pyspark 在没有 pandas 的情况下将一列拆分为多列

我的问题是如何将一列拆分为多列。我不知道为什么df.toPandas()不起作用。例如,我想将“df_test”更改为“df_test2”。我看到很多使用pandas模块的例子。还有别的办法吗?提前谢谢你。df_test=sqlContext.createDataFrame([(1,'14-Jul-15'),(2,'14-Jun-15'),(3,'11-Oct-15'),],('id','date'))df_test2iddaymonthyear114Jul15214Jun15111Oct15 最佳答案 Spark>=2.2您可以跳

python - PySpark DataFrame 无法删除重复项

您好,我创建了一个spark数据框,我正在尝试删除重复项:df.drop_duplicates(subset='id')我收到以下错误:Py4JError:Anerroroccurredwhilecallingz:org.apache.spark.api.python.PythonUtils.toSeq.Trace:py4j.Py4JException:MethodtoSeq([classjava.lang.String])doesnotexistatpy4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:335

python - pyspark 行号数据框

我有一个数据框,包含时间列、a、b、c、d、val。我想创建一个带有附加列的数据框,该列将包含行的行号,在每个组中,其中a、b、c、d是组键。我尝试使用sparksql,通过定义一个窗口函数,特别是在sql中,它看起来像这样:selecttime,a,b,c,d,val,row_number()over(partitionbya,b,c,dorderbytime)asrnfromtablegroupbya,b,c,d,val我想在数据框itslef上执行此操作,而不使用sparksql。谢谢 最佳答案 我不太了解pythonapi,

python - Pyspark 将列类型从日期更改为字符串

我有以下数据框:corr_temp_df[('vacationdate','date'),('valueE','string'),('valueD','string'),('valueC','string'),('valueB','string'),('valueA','string')]现在我想将vacationdate列的数据类型更改为字符串,以便数据框也采用这种新类型并覆盖所有条目的数据类型数据。例如。写完后:corr_temp_df.dtypes应覆盖vacationdate的数据类型。我已经使用过像cast、StringType或astype这样的函数,但我没有成功。你知道怎

python - Pyspark:将列中的 json 分解为多列

数据是这样的——+-----------+-----------+-----------------------------+|id|point|data|+-----------------------------------------------------+|abc|6|{"key1":"124","key2":"345"}||dfl|7|{"key1":"777","key2":"888"}||4bd|6|{"key1":"111","key2":"788"}|我正在尝试将其分解为以下格式。+-----------+-----------+-----------+------

python - PySpark — UnicodeEncodeError : 'ascii' codec can't encode character

使用spark.read.csv和encoding='utf-8'将包含外来字符(åäö)的数据帧加载到Spark中,并尝试做一个简单的展示().>>>df.show()Traceback(mostrecentcalllast):File"",line1,inFile"/usr/lib/spark/python/pyspark/sql/dataframe.py",line287,inshowprint(self._jdf.showString(n,truncate))UnicodeEncodeError:'ascii'codeccan'tencodecharacteru'\ufffd'

python - Pyspark - 多列聚合

我有如下数据。文件名:babynames.csv。yearnamepercentsex1880John0.081541boy1880William0.080511boy1880James0.050057boy我需要根据年份和性别对输入进行排序,并且我希望像下面这样聚合输出(此输出将分配给新的RDD)。yearsexavg(percentage)count(rows)1880boy0.0707033我不确定在pyspark中执行以下步骤后如何继续。需要你的帮助testrdd=sc.textFile("babynames.csv");rows=testrdd.map(lambday:y.s

java - 在 PySpark 中调用 first() 时 Spark 作业失败

我刚刚在Windows7机器上构建了Spark(使用sbt)并且正在浏览quickstart。调用first()时Spark作业失败。我是Java的新手,并不清楚错误堆栈跟踪向我显示了什么,尽管它似乎与java.net.SocketException给定的消息传递有关。注意我没有使用Hadoop安装。另请注意,在Scala中运行此示例时,没有任何错误。环境:Windows7Spark1.2.1pythonPython2.7.8斯卡拉2.10.4sbt0.13.7jdk1.7.0.75In[2]:path=u'C:\\Users\\striji\\Documents\\Personal\

python - 在 PySpark 中进行排序归约的最有效方法是什么?

我正在分析2015年以来美国国内航类的准点率记录。我需要按尾号分组,并将每个尾号的所有航类的日期排序列表存储在数据库中,以供我的应用程序检索.我不确定实现这一目标的两个选项中哪一个是最好的。#Loadtheparquetfileon_time_dataframe=sqlContext.read.parquet('../data/on_time_performance.parquet')#Filterdowntothefieldsweneedtoidentifyandlinktoaflightflights=on_time_dataframe.rdd.map(lambdax:(x.Car