我有这个错误,但我不知道是什么原因造成的。我的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
值存储在属于结构一部分的date数据类型中。Python类型到Spark内部表示的转换,预期能够调用^{假设您在某个地方有一个数据帧架构,它由一个带有日期字段的结构类型组成,并且有人试图在其中填充一个字符串。在
你可以根据你的回溯来追踪这个。^a2}托管在GitHub上,您的回溯指向^{} file 。这些行指向^{} method ,它委托给
self.dataType.toInternal()
方法:在您的回溯中,它在^{} method 处结束:
^{pr2}$所以我们知道这是关于结构中的日期字段。
DateType.fromInternal()
向您显示了在相反方向生成的Python类型:可以安全地假设
toInternal()
在向另一个方向转换时需要相同的类型。在相关问题 更多 >
编程相关推荐