Pyspark:将 pyspark.sql.row 转换为 Dataframe
Posted
技术标签:
【中文标题】Pyspark:将 pyspark.sql.row 转换为 Dataframe【英文标题】:Pyspark: Convert pyspark.sql.row into Dataframe 【发布时间】:2018-06-13 07:33:46 【问题描述】:我在 pyspark 中有以下行。我想基本上将它与熊猫数据框合并。
Row(Banked_Date_Calc__c=0 NaN
Name: Banked_Date_Calc__c, dtype: float64, CloseDate=0 2018-06-13T00:00:00.000Z
Name: CloseDate, dtype: object, CourseGEV__c=0 2990
Name: CourseGEV__c, dtype: int64, Id=0 0060h0000169NWLAA2
Name: Id, dtype: object, OwnerId=0 0050L000008Z30mQAC
Name: OwnerId, dtype: object, timestamp=0 2018-06-13 17:02:30.017566
Name: timestamp, dtype: datetime64[ns])
现在我收到错误,当我将上面的行放入 pd.DataFrame(msg) 时,DataFrame 没有被正确调用
msg = Row(.....) #Row is from above
pd.DataFrame(msg)
【问题讨论】:
您能否详细说明您的代码“不起作用”的原因?你期待什么,实际发生了什么?如果您遇到异常/错误,请发布full exception details。请edit这些详细信息,否则我们可能无法提供帮助。 我收到 ValueError: DataFrame 构造函数未正确调用!当我使用 pd.DataFrame(msg) 时,msg 就是我上面提到的那一行 在不说明原因的情况下投反对票是不礼貌的。但世界也是。 【参考方案1】:您不能将 pyspark 行直接传递给 Pandas Dataframe 构造函数。您可以使用中间字典来完成。
row_d = Row(...).asDict()
pd_df = pd.DataFrame.from_dict(row_d)
【讨论】:
以上是关于Pyspark:将 pyspark.sql.row 转换为 Dataframe的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spark SQL 时无法将获取 B 转换为 java.lang.String
从 Row 创建 DataFrame 会导致“推断架构问题”
PYSPARK:如何将带有多个 case 语句的 SQL 查询转换为 Pyspark/Pyspark-SQL?