【问题标题】:Can't create a pandas data frame in Pyspark无法在 Pyspark 中创建熊猫数据框
【发布时间】:2022-01-18 21:00:27
【问题描述】:

我一直在使用 Pyspark(我在我的机器上本地设置)来查询一个大型数据集,到目前为止效果很好。但是,我想为一些数据创建熊猫数据框。

SummaryStatList = []

for i in dataColumns:
    
    SummaryStatList.append(df.groupby('Status').agg(func.min(df[i]).alias(i + ' Min'),
    func.max(df[i]).alias(i + ' Max'),
    func.mean(df[i]).alias(i + ' Mean'),
    func.stddev(df[i]).alias(i + ' Variance'),
    func.percentile_approx(i,0.5).alias(i + ' Median')))
    

dfSummaryStat = pd.DataFrame(SummaryStatList)

但是在创建 pandas 数据框时出现此错误:

raceback (most recent call last):
  File "f:\Homework\UniCS\CS Year 3\Big Data\.env_BigData\BigDataAssingment.py", line 6, in <module>
    from pyspark.sql.pandas._typing import PandasDataFrame
ImportError: cannot import name 'PandasDataFrame' from 'pyspark.sql.pandas._typing' (unknown location)

这些是导入的库:

import os
import findspark
import pandas as pd
import matplotlib
from pandas.core.frame import DataFrame
from pyspark.sql.pandas._typing import PandasDataFrame
import seaborn
import numpy as np
import sklearn
from pyspark.ml.feature import Imputer
from pyspark import SparkContext
from pyspark.sql import SQLContext
sc = SparkContext("local", "Big Data Assignment") 
sql = SQLContext(sc)
import pyspark.sql.functions as func 
import pyspark
from pyspark.sql import SparkSession

现在出现这个错误:

f:\Homework\UniCS\CS Year 3\Big Data\.env_BigData\lib\site-packages\pyspark\sql\context.py:77: FutureWarning: Deprecated in 3.0.0. Use SparkSession.builder.getOrCreate() instead.
  warnings.warn(
Traceback (most recent call last):
  File "f:\Homework\UniCS\CS Year 3\Big Data\.env_BigData\lib\site-packages\findspark.py", line 143, in init
    py4j = glob(os.path.join(spark_python, "lib", "py4j-*.zip"))[0]
IndexError: list index out of range

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "f:\Homework\UniCS\CS Year 3\Big Data\.env_BigData\BigDataAssingment.py", line 20, in <module>
    findspark.init()
  File "f:\Homework\UniCS\CS Year 3\Big Data\.env_BigData\lib\site-packages\findspark.py", line 145, in init
    raise Exception(
Exception: Unable to find py4j, your SPARK_HOME may not be configured correctly

不知道为什么,因为它以前有效?

【问题讨论】:

  • 如果你删除这一行会发生什么,from pyspark.sql.pandas._typing import PandasDataFrame 并执行import pandas as pd
  • @anarchy 我只是使用 import pandas as pd。所以不知道它在说什么。
  • 当你删除我提到的那一行时会发生什么??
  • @anarchy 是的,我认为现在可行,我又遇到了另一个错误,哈哈
  • 请告诉我新的错误

标签: python pandas apache-spark pyspark


【解决方案1】:

试试这个

wget -q https://downloads.apache.org/spark/spark-3.0.1/spark-3.0.1-bin-hadoop3.2.tgz 

或者手动下载它,然后解压,然后将以下行添加到你的python文件中


import os 
os.environ["SPARK_HOME"] = "/path/to/file/spark-3.0.1-bin-hadoop3.2"


【讨论】:

    【解决方案2】:

    只需使用.toPandas()

    pandas_df = spark_df.toPandas()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 2016-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      相关资源
      最近更新 更多