草庐IT

pyspark-dataframes

全部标签

python - 在 PySpark 中处理数据之前,如何在所有 Spark 工作人员上运行一个函数?

我正在使用YARN在集群中运行SparkStreaming任务。集群中的每个节点都运行多个sparkworker。在流式传输开始之前,我想对集群中所有节点上的所有工作人员执行“设置”功能。流式传输任务将传入消息分类为垃圾邮件或非垃圾邮件,但在此之前,它需要将最新的预训练模型从HDFS下载到本地磁盘,如以下伪代码示例:deffetch_models():ifhadoop.version>local.version:hadoop.download()我在SO上看到了以下示例:sc.parallelize().map(fetch_models)但在Spark1.6parallelize()中

python / Pandas : how to combine two dataframes into one with hierarchical column index?

我有两个如下所示的数据框:>>>df1AB2000-01-011.41.42000-01-021.7-1.92000-01-03-0.2-0.8>>>df2AB2000-01-010.6-0.32000-01-02-0.40.62000-01-031.1-1.0如何使用下面的分层列索引从这两个数据帧中创建一个数据帧?df1df2ABAB2000-01-011.41.40.6-0.32000-01-021.7-1.9-0.40.62000-01-03-0.2-0.81.1-1.0 最佳答案 这是一个文档示例:http://pandas

python - 检测 pandas.DataFrame 中的列是否是分类的有什么好的启发式方法?

我一直在开发一种自动预处理pandas.DataFrame格式数据的工具。在这个预处理步骤中,我想以不同的方式处理连续数据和分类数据。特别是,我希望能够将OneHotEncoder应用到仅分类数据。现在,假设我们提供了一个pandas.DataFrame并且没有关于DataFrame中数据的其他信息。确定pandas.DataFrame中的列是否是分类的有什么好的启发式方法?我最初的想法是:1)如果列中有字符串(例如,列数据类型为object),那么该列很可能包含分类数据2)如果列中某些百分比的值是唯一的(例如>=20%),则该列很可能包含连续数据我发现1)可以正常工作,但2)效果不佳

python - 在 Spark ML/pyspark 中以编程方式创建特征向量

如果我在多个数字列中具有功能,我想知道是否有一种简洁的方法可以在pyspark中的DataFrame上运行ML(例如KMeans)。即如在Iris数据集中:(a1=5.1,a2=3.5,a3=1.4,a4=0.2,id=u'id_1',label=u'Iris-setosa',binomial_label=1)我想使用KMeans,而不用手动添加特征向量作为新列重新创建DataSet,并且在代码中重复硬编码原始列。我想改进的解决方案:frompyspark.mllib.linalgimportVectorsfrompyspark.sql.typesimportRowfrompyspar

python - AttributeError: 'DataFrame' 对象没有属性

尝试在ipython中运行此文件时,我不断收到不同的属性错误...pandas初学者,所以我可能遗漏了一些东西代码:frompandasimportSeries,DataFrameimportpandasaspdimportjsonnan=float('NaN')data=[]withopen('file.json')asf:forlineinf:data.append(json.loads(line))df=DataFrame(data,columns=['accepted','user','object','response'])clean=df.replace('NULL',na

python - PySpark 从 TimeStampType 列向 DataFrame 添加一列

我有一个看起来像这样的DataFrame。我想在date_time字段的当天进行操作。root|--host:string(nullable=true)|--user_id:string(nullable=true)|--date_time:timestamp(nullable=true)我尝试添加一列来提取日期。到目前为止,我的尝试都失败了。df=df.withColumn("day",df.date_time.getField("day"))org.apache.spark.sql.AnalysisException:GetFieldisnotvalidonfieldsoftype

python - 如何将具有值列表的列转换为 Pandas DataFrame 中的行

您好,我有一个这样的数据框:AB0:somevalue[[L1,L2]]我想改成:AB0:somevalueL11:somevalueL2我该怎么做? 最佳答案 Pandas>=0.25df1=pd.DataFrame({'A':['a','b'],'B':[[['1','2']],[['3','4','5']]]})print(df1)AB0a[[1,2]]1b[[3,4,5]]df1=df1.explode('B')df1.explode('B')AB0a10a21b31b41b5我不知道这种方法有多好,但是当你有一个项目列表时

python - 无法运行 pyspark

我在Windows上安装了Spark,但无法启动pyspark。当我输入c:\Spark\bin\pyspark时,我收到以下错误:Python3.6.0|Anacondacustom(64-bit)|(default,Dec232016,11:57:41)[MSCv.190064bit(AMD64)]onwin32Type"help","copyright","credits"or"license"formoreinformation.Traceback(mostrecentcalllast):File"c:\Spark\bin..\python\pyspark\shell.py",

python - pandas DataFrame 列中值的计数频率

我想计算每个值在数据框中出现的次数。这是我的数据框-df:status1N2N3C4N5S6N7N8S9N10N11N12S13N14C15N16N17N18N19S20N我想要计数字典:例如。counts={N:14,C:2,S:4}我试过df['status']['N']但它给出了keyError和df['status'].value_counts但没有用。 最佳答案 您可以使用value_counts和to_dict:printdf['status'].value_counts()N14S4C2Name:status,dtyp

python - 使用 Pandas DataFrame 计算每日 yield

这是我的Pandas数据框:prices=pandas.DataFrame([1035.23,1032.47,1011.78,1010.59,1016.03,1007.95,1022.75,1021.52,1026.11,1027.04,1030.58,1030.42,1036.24,1015.00,1015.20])这是我的daily_return函数:defdaily_return(prices):returnprices[:-1]/prices[1:]-1这是来自此函数的输出:0NaN10203040506070809010011012013014NaN为什么我有这个输出?