将配置单元行对象转换为整数spark

hgncfbus  于 2021-06-29  发布在  Hive
关注(0)|答案(1)|浏览(287)

我正在尝试将配置单元列的输出转换为键值对。

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'

我不知道如何将配置单元行对象类型转换为整数,以便对其应用map函数
例如,id1是一个Dataframe,当我对其应用collect()时,它返回

[Row(_c0=12616821)]

我需要从row对象中提取值。请让我知道,如果有任何解决方案与这个问题有关

slmsl1lt

slmsl1lt1#

我找到了一种从row对象获取整数值的方法。最初我想应用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

相关问题