我在pyspark中有一个大型数据框,其中一列名为distance_range,如下所示:
+---------------------+
|distance_range|
+---------------------+
| 6-10 mil|
| 2-4 mil|
| 10-15 mil|
| 20-30 mil|
| 15-20 mil|
| 4-6 mil|
| 6-10 mil|
| 0.5-2 mil|
| 2-4 mil|
| 2-4 mil|
| 4-6 mil|
| 30-40 mil|
虽然我想看到这些列的不同值,并进一步使用此col进行转动。
df.select('distance_range').distinct().show()
它总是返回错误:
Py4JJavaError: An error occurred while calling o1884.showString.
TypeError: unorderable types: NoneType() < float()
此列是字符串类型且没有空值
此列由
生成 def dist_range(distance):
elif 0.5 <= distance <2:
return '0.5-2 mil'
elif 2 <= distance <4:
return '2-4 mil'
.
.
.
elif 20 <= distance <30:
return '20-30 mil'
else 30 <= distance <40:
return '30-40 mil'
udf_distance_range = udf(dist_range, StringType())
df = original_df.withColumn("distance_range", udf_distance_range("home_store_dist"))