对Spark Dataframe 中具有两位和三位数字的列进行排序。我正在对一个包含两个和三个数字的整数类型的列进行排序,在金额列上应用sort()后,它在顶部显示三个数字,然后所有两个数字都在它下面排序。请解释如何以正确的方式对完整的列进行排序。
juzqafwq1#
我想你没有用最新的df来排序在将金额转换为整数之前,您使用了df。
t9eec4r02#
首先,你能提供dataframe sortdf的模式在第号线。3在上面的代码?第二,线上没有。4我看到你用intdf创建了一个新的dataframe,列'amount'转换为int。你能分享intdf Dataframe 的模式吗?创建intdf Dataframe 的正确语法是:瓦尔intdf = sortdf.withcolumn(“金额”,col(“金额”).cast(“整数”))可以使用intdf.printschema()函数。第三,你没有使用在第4行创建的 Dataframe ,即intdf来执行排序命令。sortdf中的'amount'列的数据类型可能不是int,所以你没有得到正确的输出。建议您用途:瓦尔sdf = intdf.sort(col('amount ').desc)来得到你想要的结果。
2条答案
按热度按时间juzqafwq1#
我想你没有用最新的df来排序
在将金额转换为整数之前,您使用了df。
t9eec4r02#
首先,你能提供dataframe sortdf的模式在第号线。3在上面的代码?
第二,线上没有。4我看到你用intdf创建了一个新的dataframe,列'amount'转换为int。你能分享intdf Dataframe 的模式吗?创建intdf Dataframe 的正确语法是:
瓦尔intdf = sortdf.withcolumn(“金额”,col(“金额”).cast(“整数”))
可以使用intdf.printschema()函数。
第三,你没有使用在第4行创建的 Dataframe ,即intdf来执行排序命令。sortdf中的'amount'列的数据类型可能不是int,所以你没有得到正确的输出。
建议您用途:
瓦尔sdf = intdf.sort(col('amount ').desc)来得到你想要的结果。