在数组中查找值

时间:2019-05-17 09:32:53

标签: python sql scala databricks

假设我有两个数据集

DS1
ArrayCol
[1,2,3,4]
[1,2,3]

DS2
Key            Name
1              A
2              B
3              C
4              D

如何在数组中查找值以映射“名称”,这样我就可以拥有另一个类似于以下的数据集?

DS3
COlNew
[A,B,C,D]
[A,B,C]

谢谢,它在数据块中,所以方法还可以。 python,sql,scala ......

2 个答案:

答案 0 :(得分:0)

您可以尝试

ds1 = [[1, 2, 3, 4], [1, 2, 3]]
ds2 = {1: 'A', 2: 'B', 3: 'C', 4: 'D'}
new_data = [[ds2[cell] for cell in col] for col in ds1]
print(new_data)

输出:

[['A', 'B', 'C', 'D'], ['A', 'B', 'C']]

希望会有所帮助。 :)

答案 1 :(得分:0)

让我们考虑您的数据集在文件中,您可以执行以下操作

利用dict

f=open("ds1.txt").readlines()
g=open("ds2.txt").readlines()
u=dict(item.rstrip().split("\t") for item in g)
for i in f:
    i = i.rstrip().strip('][').split(',')
    print [u[col] for col in i]

输出

['A', 'B', 'C', 'D']
['A', 'B', 'C']