apache-spark - TypeError:字段值:FloatType 不能接受类型中的对象 -0.016354798954796402
问题描述
我正在尝试将 pyspark 列表转换为 pyspark 数据框。我正在使用 pyspark 3.0.1。清单是
array([-0.0163548 , 0.01245932, -0.16051448, -0.00959805, 0.54802954,
0.7846123 , 0.04227988])
我正在使用以下语句将其转换为 pyspark 数据帧 coeff=spark.createDataFrame(trained_model.coefficients.values,FloatType()) 但我收到错误消息
TypeError: field value: FloatType can not accept object -0.016354798954796402 in type <class 'numpy.float64'>
你能建议我如何解决这个问题吗
解决方案
Spark 通常与 numpy dtypes 斗争,因此您可以在转换为 Spark 数据帧之前将它们转换为 Python 浮点类型:
coeff = spark.createDataFrame(
[float(x) for x in trained_model.coefficients.values],
FloatType()
)
推荐阅读
- javascript - 检查事件目标是文件还是值
- irc - 在 Hexchat 或任何 IRC 客户端中,如果该人不再在网络中,我如何查看我过去与该人的对话?
- pygears - 是否可以在 PyGears 中设置断点?
- php - 刀片视图中@foreach循环的Laravel问题
- react-redux - 如何在反应服务器端渲染(Razzle)中集成 AMP?
- javascript - http基本认证时如何保存用户参数?
- architecture - 使用 MERN 堆栈构建的流行应用程序
- excel - 寻求更有效的公式从分隔文本字符串中提取字段
- android-studio - Kotlin (Android Studio) 意外标记(使用 ';' 分隔同一行上的表达式)
- javascript - 在 javascript V8 中,编译阶段是否发生在执行阶段之前的函数,然后所有代码都被执行或仅用于全局上下文