将 Hive 行对象转换为整数 Spark
Posted
技术标签:
【中文标题】将 Hive 行对象转换为整数 Spark【英文标题】:Convert Hive Row Object to Integer Spark 【发布时间】:2016-04-28 18:38:27 【问题描述】:我正在尝试将配置单元列的输出转换为键值对。
sqlContext = HiveContext(sc)
id1 = sqlContext.sql("select instance_id from temp_table")
pairs1 = id1.map(lambda s: (int(s), 'Configuration'))
我收到以下错误
TypeError: int() argument must be a string or a number, not 'Row'
我不确定如何将 Hive Row 对象类型转换为整数,以便我可以将 map 函数应用于该对象
例如,id1 是一个数据框,当我将 collect() 应用于它时,它会返回
[Row(_c0=12616821)]
我需要从行对象中提取值。如果有任何与此问题相关的解决方案,请告诉我
【问题讨论】:
【参考方案1】:我想出了一种从行对象中获取整数值的方法。最初我想应用 typecast 并将其转换为 int 和其他一些方法。但似乎我们可以通过应用索引来获取值
>> id1 = sqlContext.sql("select int(id) as id from temp_table limit 1")
>> temp = df1.select('id').collect()
>> temp
[Row(id = 9331413)]
>> temp[0][0]
9331413
【讨论】:
以上是关于将 Hive 行对象转换为整数 Spark的主要内容,如果未能解决你的问题,请参考以下文章