加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 对Spark数据框/ Hive结果集进行排序

发布时间:2020-12-16 10:01:12 所属栏目:安全 来源:网络整理
导读:我正在尝试从Hive表中检索列列表并将结果存储在spark数据帧中. var my_column_list = hiveContext.sql(s""" SHOW COLUMNS IN $my_hive_table""") 但我无法按字母顺序对数据帧进行排序,甚至无法对显示列查询的结果进行排序.我尝试使用sort和orderBy(). 我怎样
我正在尝试从Hive表中检索列列表并将结果存储在spark数据帧中.

var my_column_list = hiveContext.sql(s""" SHOW COLUMNS IN $my_hive_table""")

但我无法按字母顺序对数据帧进行排序,甚至无法对显示列查询的结果进行排序.我尝试使用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

解决方法

SHOW COLUMNS查询生成一个Dataframe,其中包含一个名为result的列.如果您按此栏目订购,则可获得所需内容:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读