데이터 배열 목록이 있고 해당 인덱스(id)로 값을 보고 데이터 배열의 인덱스 ID에 저장하고 싶습니다. 스프레드시트 VALUE LOOKUP 함수에서 이 작업을 수행할 수 있지만 여전히 이 작업을 수행할 데이터가 많고 대용량 데이터 세트의 경우 스프레드시트 기능이 빠르지 않을 것이라고 생각합니다. 더 빠르게 수행할 수 있는 스크립트를 알려주시면 도움이 되길 바랍니다. 내 데이터 배열, 인덱스 ID 및 제안된 출력은 다음과 같습니다.
데이터 배열
Id Value
1 10
2 20
3 30
4 40
6 60
8 80
10 100
색인
Id
1
2
3
4
5
6
7
8
9
10
11
12
13
출력은 다음과 같습니다
ID Value
1 10
2 20
3 30
4 40
5 NULL
6 60
7 NULL
8 80
9 NULL
10 100
11 NULL
12 NULL
13 NULL
다시 도와주셔서 감사합니다.
답변1
매우 빠른 오픈 소스 NoSQL 키-값 저장소인 awk와 redis의 완벽한 조합을 사용해 보세요.http://redis.io더 알아보기).
awk를 사용하여 2개의 파일("data_array.txt" 및 "index.txt")을 구문 분석하고 redis 명령을 생성하세요.
2개의 awk 스크립트 결과를 bash로 파이프하여 실행합니다. 그게 다야 :-)
단계별:
다음과 같이 세 번째 줄부터 시작하는 데이터 파일을 구문 분석하여 redis "SET" 문을 생성합니다.
awk '{if (FNR > 2) \
print "redis-cli SET VALUE:" $1 " \"" $2"\""}' data_array.txt
redis-cli SET VALUE:1 "10"
redis-cli SET VALUE:2 "20"
redis-cli SET VALUE:3 "30"
redis-cli SET VALUE:4 "40"
redis-cli SET VALUE:6 "60"
redis-cli SET VALUE:8 "80"
redis-cli SET VALUE:10 "100"
redis "SET" 문을 bash에 파이프하여 실행합니다.
awk '{if (FNR > 2) \
print "redis-cli SET VALUE:" $1 " \"" $2"\""}' data_array.txt | bash
OK
OK
OK
OK
OK
OK
OK
다음과 같이 세 번째 줄부터 시작하는 인덱스 파일을 구문 분석하여 redis "GET" 문을 생성합니다.
awk '{if (FNR > 2) print "printf \"" $1 " \" && redis-cli GET VALUE:" $1}' index.txt
echo 1 && redis-cli GET VALUE:1
echo 2 && redis-cli GET VALUE:2
echo 3 && redis-cli GET VALUE:3
echo 4 && redis-cli GET VALUE:4
echo 5 && redis-cli GET VALUE:5
echo 6 && redis-cli GET VALUE:6
echo 7 && redis-cli GET VALUE:7
echo 8 && redis-cli GET VALUE:8
echo 9 && redis-cli GET VALUE:9
echo 10 && redis-cli GET VALUE:10
echo 11 && redis-cli GET VALUE:11
echo 12 && redis-cli GET VALUE:12
echo 13 && redis-cli GET VALUE:13
redis "GET" 문을 bash에 파이프하여 실행합니다.
awk '{if (FNR > 2) \
print "printf \"" $1 " \" && redis-cli GET VALUE:" $1}' index.txt |\
bash
1 "10"
2 "20"
3 "30"
4 "40"
5 (nil)
6 "60"
7 (nil)
8 "80"
9 (nil)
10 "100"
11 (nil)
12 (nil)
13 (nil)
즐기다:-)
버니
@라훌 파틸
@Gilles
일부러 여기에 답변을 게시합니다. Abraham의 예제 데이터는 매우 투명하므로 내 답변을 빨리 이해할 수 있기를 바랍니다. 데이터유닉스의 vlookup 함수예시를 보니 헷갈리네요...