Python 是什么导致了';unicode';对象没有属性';toordinal';在派斯帕克?

Python 是什么导致了';unicode';对象没有属性';toordinal';在派斯帕克?,python,pyspark,Python,Pyspark,我有这个错误,但我不知道是什么原因造成的。我的python代码在pyspark中运行。stacktrace很长,我只展示了其中的一些。所有的stacktrace都没有显示我的代码,所以我不知道去哪里找。此错误的可能原因是什么 /usr/hdp/2.4.2.0-258/spark/python/lib/py4j-0.9-src.zip/py4j/protocol.py in get_return_value(answer, gateway_client, target_id, name)

我有这个错误,但我不知道是什么原因造成的。我的python代码在pyspark中运行。stacktrace很长,我只展示了其中的一些。所有的stacktrace都没有显示我的代码,所以我不知道去哪里找。此错误的可能原因是什么

/usr/hdp/2.4.2.0-258/spark/python/lib/py4j-0.9-src.zip/py4j/protocol.py in get_return_value(answer, gateway_client, target_id, name)
    306                 raise Py4JJavaError(
    307                     "An error occurred while calling {0}{1}{2}.\n".
--> 308                     format(target_id, ".", name), value)
    309             else:
    310                 raise Py4JError(

Py4JJavaError: An error occurred while calling o107.parquet.

...
File "/usr/hdp/2.4.2.0-258/spark/python/lib/pyspark.zip/pyspark/sql/types.py", line 435, in toInternal
    return self.dataType.toInternal(obj)
  File "/usr/hdp/2.4.2.0-258/spark/python/lib/pyspark.zip/pyspark/sql/types.py", line 172, in toInternal
    return d.toordinal() - self.EPOCH_ORDINAL
AttributeError: 'unicode' object has no attribute 'toordinal'

谢谢,

特定异常是由于尝试在作为结构一部分的日期数据类型中存储
unicode
值而导致的。Python类型到Spark内部表示的转换预期能够调用方法

假设您在某个地方有一个dataframe模式,它由一个带有日期字段的结构类型组成,并且有东西试图将字符串填充到其中

你可以根据你的回溯来追踪。的主机位于GitHub上,您的回溯指向。这些行指向,它委托给
self.dataType.toInternal()
方法:

class StructField(DataType):
    # ...
    def toInternal(self, obj):
        return self.dataType.toInternal(obj)
在您的回溯中,最终的结果是:

我们知道这是关于结构中的日期字段。
DateType.fromInternal()
向您展示了反向生成的Python类型:

def fromInternal(self, v):
    if v is not None:
        return datetime.date.fromordinal(v + self.EPOCH_ORDINAL)

可以安全地假设,
toInternal()
在另一个方向转换时需要相同的类型。

您能显示导致错误的代码吗?您切断了回溯。你能再多看几行代码吗?我可以追溯到一个
结构字段
。也许父行显示了该字段的存储位置。谢谢!根据你的提示,我能找出我的错误
def fromInternal(self, v):
    if v is not None:
        return datetime.date.fromordinal(v + self.EPOCH_ORDINAL)