python-3.x - 我想获取 PySpark 数据框中列的最小值
问题描述
我想用 compare_at_price 的最小值创建一个新列。如果数据包含值,我们可以很容易地得到最小值
sumList1 = udf(lambda c: min(c), IntegerType())
。但是我在数据框中的某些行中只有逗号。
+--------------------+
| compare_at_price|
+--------------------+
| [,,,]|
| []|
| [,,,]|
|[89.95, 89.95, 89.95|
| []|
| []|
你能帮我解决吗!
解决方案
您可以通过以下方式找到 ArrayType 列的最小值:
from pyspark.sql.functions import col,array_min
resultDF = df.select(array_min(col("compare_at_price")).alias('min_price'))
resultDF.show(False)
推荐阅读
- amazon-s3 - 必须在配置单元中运行“分析表”否则计数(*)显示 0
- c# - UiAutomationCore.dll 中的 System.AccessViolationException
- python - 如何将包含偶数个浮点数的列表转换为除以大小为该偶数一半的列表的字符串?
- javascript - @recogito/annotorious : 总是在矩形下方显示注释
- r - 在 R fabletools 中使用滞后的 xreg 时的预测行为不一致
- openlayers - OpenLayers 升级文档从 5.3.0 移动到 6.6.1
- google-apps-script - 谷歌脚本在公式上添加单元格名称
- javascript - Javascript 中的回文
- python - 用 sympy 对角化矩阵所需的时间
- next.js - 如何使用 nextjs 从 url 中删除 /[ defolt lang tag]?