草庐IT

pyspark-dataframes

全部标签

python - 如何将字符串类型的列转换为pyspark数据框中的int形式?

我在pyspark中有数据框。它的一些数字列包含nan,因此当我读取数据并检查数据帧的架构时,这些列将具有string类型。如何将它们更改为int类型。我用0替换了nan值并再次检查了架构,但随后它也显示了这些列的字符串类型。我遵循以下代码:data_df=sqlContext.read.format("csv").load('data.csv',header=True,inferSchema="true")data_df.printSchema()data_df=data_df.fillna(0)data_df.printSchema()我的数据是这样的:这里的列Plays和draf

python - 使用 monotonically_increasing_id() 将行号分配给 pyspark 数据帧

我正在使用monotonically_increasing_id()使用以下语法将行号分配给pyspark数据帧:df1=df1.withColumn("idx",monotonically_increasing_id())现在df1有26,572,528条记录。所以我期望idx值在0-26,572,527之间。但是当我选择max(idx)时,它的值出奇地大:335,008,054,165。这个函数是怎么回事?使用此函数与另一个具有相似记录数的数据集合并是否可靠?我有大约300个数据帧,我想将它们组合成一个数据帧。因此,一个数据框包含ID,而其他数据框包含与它们逐行对应的不同记录

python - 如何在 pySpark 数据框中添加行 ID

这个问题在这里已经有了答案:PrimarykeyswithApacheSpark(4个答案)关闭6年前。我有一个csv文件;我在pyspark中将其转换为DataFrame(df);经过一些改造;我想在df中添加一列;这应该是简单的行ID(从0或1到N)。我将df转换为rdd并使用“zipwithindex”。我将生成的rdd转换回df。这种方法有效,但它生成了250k任务并且需要花费大量时间来执行。我想知道是否有其他方法可以减少运行时间。以下是我的代码片段;我正在处理的csv文件很大;包含数十亿行。debug_csv_rdd=(sc.textFile("debug.csv").fil

python - Pandas 什么时候默认广播 Series 和 Dataframes?

我在尝试回答thisquestion时遇到了一些(对我来说)好奇的事情.假设我想将一系列形状(10,)与形状(10,10)的df进行比较:np.random.seed(0)my_ser=pd.Series(np.random.randint(0,100,size=10))my_df=pd.DataFrame(np.random.randint(0,100,size=100).reshape(10,10))my_ser>10*my_df如预期的那样,生成df(10,10)形状的矩阵。比较似乎是按行进行的。但是考虑这种情况:df=pd.DataFrame({'cell1':[0.00620

python - spark-submit 和 pyspark 有什么区别?

如果我启动pyspark然后运行此命令:importmy_script;spark=my_script.Sparker(sc);spark.collapse('./data/')一切正常。但是,如果我尝试通过命令行和spark-submit做同样的事情,我会得到一个错误:Command:/usr/local/spark/bin/spark-submitmy_script.pycollapse./data/File"/usr/local/spark/python/pyspark/rdd.py",line352,infuncreturnf(iterator)File"/usr/local/

python - 提高 Pandas DataFrames 的行追加性能

我正在运行一个循环遍历嵌套字典的基本脚本,从每条记录中获取数据,并将其附加到PandasDataFrame。数据看起来像这样:data={"SomeCity":{"Date1":{record1,record2,record3,...},"Date2":{},...},...}它总共有几百万条记录。脚本本身如下所示:city=["SomeCity"]df=DataFrame({},columns=['Date','HouseID','Price'])forcityincities:fordateRunindata[city]:forrecordindata[city][dateRun]

python - 总结 Pandas DataFrame 中的列值

在pandasDataFrame中,是否可以折叠具有相同值的列,然后将另一列中的值相加?代码data={"score":{"0":9.397,"1":9.397,"2":9.397995,"3":9.397996,"4":9.3999},"type":{"0":"advanced","1":"advanced","2":"advanced","3":"newbie","4":"expert"},"count":{"0":394.18930604,"1":143.14226729,"2":9.64172783,"3":0.1,"4":19.65413734}}df=pd.DataFram

python - 合并 DataFrame 中的重复列

如果我的数据框包含包含相同名称的列,是否可以通过某种函数(即求和)将具有相同名称的列组合起来?例如:In[186]:df["NY-WEB01"].head()Out[186]:NY-WEB01NY-WEB01DateTime2012-10-1816:00:005.62.82012-10-1817:00:0018.612.02012-10-1818:00:0018.412.02012-10-1819:00:0018.212.02012-10-1820:00:0019.212.0我如何通过对列名称相同的每一行求和来折叠NY-WEB01列(有一堆重复的列,而不仅仅是NY-WEB01)?

python - 以 html 电子邮件的形式发送 pandas dataframe 数据

我想将pandasdataframe数据作为HTML电子邮件发送。基于this发布我可以用数据框创建一个html。代码importpandasaspdimportnumpyasnpHEADER=''''''FOOTER=''''''df=pd.DataFrame([[1.1,1.1,1.1,2.6,2.5,3.4,2.6,2.6,3.4,3.4,2.6,1.1,1.1,3.3],list('AAABBBBABCBDDD')]).Twithopen('test.html','w')asf:f.write(HEADER)f.write(df.to_html(classes='df'))f.

Pandas中对DataFrame列名进行重命名

目录1.重命名PandasDataFrameColumn(列)2.在创建Dataframe时指定列名3.※使用list设置全部列名※Pandas是一个用于数据分析和操作的Python库。在pandas中几乎所有的操作都围绕着DataFrame。Dataframe是一个二维表的抽象表示,可以包含各种数据。1.重命名PandasDataFrameColumn(列)背景:只想重命名几列,最好在创建DataFrame后使用rename方法使用Dataframe时,列经常被称为属性或字段。有两个选项用于操作DataFrame的列名:重命名现有的DataFrame的列在创建新的DataFrame时指定自定