由于coordinates
,我无法创建DataFrame。此字段不适合架构类型ArrayType(DoubleType())
。
my_schema = StructType(
[
StructField('alarm_id', StringType()),
StructField('coordinates',ArrayType(DoubleType()))
])
df = spark.createDataFrame(rows, my_schema)
我收到此错误:
TypeError: ArrayType(DoubleType,true) can not accept object u'[[[1.7594273000000102, 41.82814869999999], [1.7594281999999908, 41.828104700000004]]]' in type <type 'unicode'>
有什么解决方法吗?
最佳答案
看来您的数据是字符串类型。
您可以使用ast
lib使其成为列表。
import ast
rows = '[[[1.7594273000000102, 41.82814869999999], [1.7594281999999908, 41.828104700000004]]]'
rows_li = ast.literal_eval(rows)
有关literal_eval的更多信息