업무 중에 python을 통해서 테이블을 생성하고 무작위 데이터를 적재하고자 하는 Needs가 있었다.
random 모듈을 사용하였으며, while문을 통해서 쿼리를 한 건씩 생성해 실행해주는 방식이라 소요시간이 길다는 단점이 있으니 참고.
random.sample(sequence, k)
random 모듈의 sample() method는 sequence에서 지정된 수(k)의 항목을 무작위로 선택한 목록을 반환한다.
cf. sequence : list, set, range etc...
mylist = ["blue","pink","red","yellow","green"]
smplColor = random.sample(mylist, 2)
print(smplColor)
#result#
#['yellow', 'pink']
string.join(iterable)
join() method는 iterable의 모든 항목을 가져와 하나의 문자열로 결합한다.
colorJoin1 = '+'.join(smplColor) # +로 요소 연결
print(olorJoin1)
#result#
#yellow+pink
colorJoin2 = ''.join(smplColor) #공백으로 요소 연결
print(colorJoin2)
#result#
#yellowpink
무작위 데이터 생성 Example
1. random & datetime import
오늘 날짜를 yyyy-MM-dd 형식으로 넣어줄 것이므로 datetime도 import 해준다.
import random
from datetime import datetime
2. 무작위 데이터 생성 및 Insert 실행
- 알파벳과 숫자를 조합하여 무작위로 7자리의 코드를 생성
- datetime 모듈을 통해서 오늘 날짜를 추출
- while문은 총 100번 돌면서 무작위 데이터를 생성하고 Insert Query를 실행
smpl1 = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z','0','1','2','3','4','5','6','7','8','9']
i =1
today = datetime.today().strftime('%Y-%m-%d')
while i <= 100 :
smplCode = random.sample(smpl1,7)
code = ''.join(smplCode)
query = "'"+code +"','"+today+"'"
query_all = "insert into Table values("+ query+")"
spark.sql(query_all)
i = i + 1
'Python' 카테고리의 다른 글
invalid non-printable character U+00A0 에러 원인 및 해결 (1) | 2023.01.25 |
---|---|
Spark의 Dataframe , Pandas의 Dataframe 활용하기 (0) | 2023.01.25 |
assert(가정 설정문) 사용하기 (0) | 2023.01.05 |
[Python] Unindent not expected Pylance 에러(VS Code 사용) (0) | 2022.12.20 |
[Python] is_displayed(), is_selected(), is_enabled() 사용하기(Selenium) (0) | 2022.12.20 |