Scala 对Spark数据帧/配置单元结果集排序

Scala 对Spark数据帧/配置单元结果集排序,scala,apache-spark,hive,Scala,Apache Spark,Hive,我试图从配置单元表中检索列列表,并将结果存储在spark数据帧中 var my_column_list = hiveContext.sql(s""" SHOW COLUMNS IN $my_hive_table""") 但我无法按字母顺序对数据帧进行排序,甚至无法对ShowColumns查询的结果进行排序。我尝试使用sort和orderBy() 如何按字母顺序对结果排序 更新:添加了我的代码示例 import org.apache.spark.{ SparkConf, SparkContext

我试图从配置单元表中检索列列表,并将结果存储在spark数据帧中

var my_column_list = hiveContext.sql(s""" SHOW COLUMNS IN $my_hive_table""")
但我无法按字母顺序对数据帧进行排序,甚至无法对ShowColumns查询的结果进行排序。我尝试使用sort和orderBy()

如何按字母顺序对结果排序

更新:添加了我的代码示例

import org.apache.spark.{ SparkConf, SparkContext }
import org.apache.spark.sql.DataFrame
import org.apache.spark.sql.hive.HiveContext

val hiveContext = new HiveContext(sc)
hiveContext.sql("USE my_test_db")

var lv_column_list = hiveContext.sql(s""" SHOW COLUMNS IN MYTABLE""")
//WARN LazyStruct: Extra bytes detected at the end of the row! Ignoring similar problems

lv_column_list.show //Works fine
lv_column_list.orderBy("result").show //Error arises

不确定如何使用sort或orderBy方法

试试下面的方法

df.sort(asc("column_name"))    
df.orderBy(asc("column_name"))

showcolumns
查询生成一个数据框,其中一列名为
result
。如果您按此列订购,您将得到您想要的:

val df = hiveContext.sql(s""" SHOW COLUMNS IN $my_hive_table """)
df.orderBy("result").show

我没有使用“showcolumns”,而是使用了“DESC”并检索了带有“col_name”的列列表


排序不是这里的问题,它与show columns命令的结果有关。我得到了一个异常“org.apache.spark.sql.AnalysisException:resolved attribute(s)result#31缺失于operator中的result#21!Sort[result#31 ASC],true;”在问题中添加了一个代码片段。当我执行ShowColumns部分时,我得到一个警告(如代码所示)。这可能是例外的原因吗?
var lv_column_list = hiveContext.sql(s""" DESC MYTABLE""")
lv_column_list.select("col_name").orderBy("col_name")