Iso*_*ted 1 python pandas pyspark databricks
我正在使用 Databricks 笔记本提取 gz 压缩的 csv 文件并加载到数据框对象中。我在执行下面的第 2 部分时遇到了问题。
第 1 部分:将压缩文件加载到数据框中运行良好......
%python
df1 = spark.read.option("header",True).option("delimiter", "|").csv("dbfs:/model/.../file_1.csv.gz")
df2 = spark.read.option("header",True).option("delimiter", "|").csv("dbfs:/model/.../file_2.csv.gz")
Run Code Online (Sandbox Code Playgroud)
第 2 部分:尝试合并数据框...
%python
import pandas as pd
df =pd.concat([df1, df2], ignore_index=True)
df.show(truncate=False)
Run Code Online (Sandbox Code Playgroud)
...返回以下错误:
类型错误:无法连接 '<class 'pyspark.sql.dataframe.DataFrame'>' 类型的对象;仅 Series 和 DataFrame 对象有效
对于尝试修改合并数据框的方式有什么建议吗?我最多将有 20 个文件要合并,其中所有列都相同。
如果对象很大,我认为最好的方法不是从pysparkto转换pandas,而是执行concatin的等效操作pyspark。
请注意, unionAll()自 Spark \xe2\x80\x9c2.0.0\xe2\x80\x9d 版本起已弃用,并替换为union() https://sparkbyexamples.com/pyspark/pyspark-union-and-unionall/
我相信你可以做到:
\nfrom functools import reduce\nfrom pyspark.sql import DataFrame\n\ndfs = [df1,df2]\nmerged = reduce(DataFrame.union, dfs)\nRun Code Online (Sandbox Code Playgroud)\n当然还有查看它:
\nmerged.show(truncate=False) # or display(merged)\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3803 次 |
| 最近记录: |