TypeError: Can not infer schema for type: <class 'numpy.float64'>
因为数据中存在float类型数据,原始简易写法
owords_result = topWords.map(lambda p: Row(label_word=p[0], word_weight=p[1], word_flag=p[2]))
schemaPeople = spark.createDataFrame(owords_result)
报错了,错误
TypeError: Can not infer schema for type: <class 'numpy.float64'>
TypeError: not supported type: <class 'numpy.float64'>
需要将float类型显示指定才能存储成功,或者显示指定使用stringtype。
改写为
from pyspark.sql.types import StructField, StringType, FloatType, StructType
###createDataFrame # The schema is encoded in a string.
schemaString = "label_word word_weight word_flag"
fields = [StructField(field_name, StringType(), True) for field_name in schemaString.split(' ')]
schema = StructType(fields)
schemaPeople = spark.createDataFrame(owords_result, schema)
本文解决在使用PySpark处理数据时遇到的TypeError,详细解释了如何正确处理numpy.float64类型数据,避免在创建DataFrame时出现类型推断错误。通过明确指定schema,确保数据能被正确存储。
878

被折叠的 条评论
为什么被折叠?



