spark根据hive表映射名称和id将数据帧的列从name转换为id

问题描述 投票:0回答:1

首先,我们在配置单元中有一个配置单元表类别:

id  |   name
1   |   history
2   |   art

...

然后我们从mongodb读取一本书籍集来激发数据帧:

bookname    |      category
Europe      |      history book
Drawing     |      arts

在这里,如果book.category包含category.name,那么我需要将其转换为id。例如,我期望的输出是这样的数据帧:

bookname    |      category
Europe      |      1
Drawing     |      2

小心!我知道我可以使用rdd.map(),但问题是字段的数量实际上大于22,但是不允许使用tuple23,所以我不能像这样使用rdd.map:

bookDf.rdd.map(f=>{
   ....
   (field1,field2,.....filed50)//illegle
}).toDF()

任何其他方式?

apache-spark dataframe hive rdd
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.