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进行开发 '''
答案 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()