正在获取AttributeError:“ DataFrame”对象没有属性“ shape”

时间:2019-08-12 05:56:58

标签: python pyspark apache-spark-sql pycharm

python

我正在使用将CSV读取到名为'InputDataFrame'的Pyspark Dataframe中:

InputDataFrame = spark.read.csv(path=file_path,inferSchema=True,ignoreLeadingWhiteSpace=True,header=True)

阅读后我正在使用

InputDataFrame.schema.names 

查找列名。但是我得到了控制台上的日志

Traceback (most recent call last):

  File "/snap/pycharm-community/143/helpers/pydev/_pydevd_bundle/pydevd_xml.py", line 284, in frame_vars_to_xml
    xml += var_to_xml(v, str(k), evaluate_full_value=eval_full_val) 

  File "/snap/pycharm-community/143/helpers/pydev/_pydevd_bundle/pydevd_xml.py", line 384, in var_to_xml
    xml_shape = ' shape="%s"' % make_valid_xml_value(str(v.shape))  

  File "/home/ajinkya/.local/lib/python3.6/site-packages/pyspark/sql/dataframe.py", line 1300, in __getattr__
    "'%s' object has no attribute '%s'" % (self.__class__.__name__, name))  

AttributeError: 'DataFrame' object has no attribute 'shape'  
Unexpected error, recovered safely.

有人可以解释为什么会这样吗?还有其他方法可以找到Pyspark Dataframe的推断模式

''' 使用Pycharm IDE进行开发 '''

3 个答案:

答案 0 :(得分:2)

在移植到最新的Pycharm版本后,在某些代码上运行得很好的代码上也遇到了同样的问题。

我假设您正在使用最新的Pycharm版本(2019.2)。我没有解释为什么这会导致问题,但是安装较旧的Pycharm 2019.1.4为我解决了这个问题。

答案 1 :(得分:0)

我同意本。新版本的PyCharm代码期望使用的Pandas DataFrame包含“ shape”属性,而不包含RDD DataFrame(不包含)。您将需要回滚到旧版本,或者等待JetBrains发出修复程序。

答案 2 :(得分:0)

同意,在pycharm 2019.2上运行此文件没有问题。在某个地方放置断点,将发生调试和错误

    spark = SparkSession.builder.getOrCreate()
    pdf = pd.DataFrame({'A': ['asdf', 'fdsa'], 'B': [1, 2]})
    sdf = spark.createDataFrame(pdf)
    print(pdf)
    sdf.show()