我正在运行这个sparksubmit作业,但收到AttributeError:numpy.dtype
对象没有属性_get_object_id
mycursor.execute(
"SELECT a, b, c, d, e"
"FROM {} ".format(mysql_schema))
panda_df = DataFrame(mycursor.fetchall())
myschema = StructType(
[
StructField('a', StringType(), True),
StructField('b', StringType(), True),
StructField('c', StringType(), True),
StructField('d', StringType(), True),
StructField('e', StringType(), True),
])
spark_df = spark.createDataFrame(panda_df, schema=myschema)
创建数据框时,最后一行出现错误。
我试着打印值,这些就是我得到的
print(panda_df.to_string())
a b c d e
0 38 38 N 2 Y
1 49 49 N 3 Y
2 64 64 N 5 Y
3 26 26 N 11 Y
4 36 36 N 12 Y
print(panda_df.dtypes)
a object
b object
c object
d object
e object
dtype: object
我在MacOS M1上使用pyspark版本3.1.1和numpy版本1.19.5以及pandas版本1.1.5。
上面的代码在作为独立脚本运行时没有错误,但是当作为spark-submit作业的一部分运行时,会出现错误。任何想法是什么问题的原因或如何修复AttributeError?
编辑:原来这个错误是由一个我没有包含在上面代码中的记录器引起的
1条答案
按热度按时间eiee3dmh1#
表中的值并不都是您在模式中指定的字符串。尝试在创建模式之前将pandas_df转换为字符串。