스파크 애플리케이션 기능 테스트를 위한 샘플 데이터 생성 방법
Spark 애플리케이션을 개발하는 동안 애플리케이션의 기능을 테스트하기 위해 샘플 데이터를 생성해야 하는 경우가 많습니다. 이 문서에서는 Spark 작업의 기능 및/또는 부하 테스트를 위해 spark-shell에서 샘플 데이터를 생성하는 간단하고 빠른 방법을 보여줍니다.
랜덤 함수
먼저 랜덤 데이터를 생성하는 함수가 필요합니다. 데이터 유형에 대한 요구 사항에 따라 랜덤 정수나 문자 등을 생성하는 여러 함수를 만들고 이를 조합하여 사용할 수 있습니다.
단순화를 위해 영숫자 문자열을 생성하는 Scala의 기본 제공 유틸리티를 사용하여 하나의 함수만 만들겠습니다. 사용자 지정 랜덤 문자열 생성기 함수를 작성하기로 결정할 수도 있습니다. 여기에서 몇 가지 예를 찾을 수 있습니다.
def randomStringGen(length: Int) = scala.util.Random.alphanumeric.take(length).mkString
함수는 length를 인수로 사용하여 원하는 길이의 문자열을 생성합니다.
scala.util.Random.alphanumeric은 임의의 영숫자 문자 스트림을 반환합니다.
take(length)는 처음 "length"개의 문자를 가져옵니다.
mkString은 해당 문자에서 문자열을 만듭니다.
데이터프레임 만들기
`toDF()`를 사용하여 원하는 수의 열에 대한 임의의 데이터가 있는 Spark 데이터프레임을 생성할 수 있습니다.
val df = sparkContext.parallelize(Seq.fill(4000){(randomStringGen(4), randomStringGen(4), randomStringGen(6))}, 10).toDF("col_1", "col_2", "col_3")
Seq.fill(4000)은 각 열에 대해 randomStringGen()에서 생성된 임의의 문자열이 있는 4000개 행의 컬렉션(Seq)을 만듭니다.
sparkContext.parallelize()는 행의 Seq에서 병렬화된 컬렉션을 만들어 병렬로 작업할 수 있습니다.
toDF()는 “col_1” 등으로 언급된 열 이름이 있는 데이터 프레임을 반환합니다.
Write
마지막으로 데이터 프레임을 원하는 위치에 씁니다.
df.write.parquet("s3://my-bucket/dummy-data/")
애플리케이션의 요구 사항에 따라 다른 파일 형식(parquet, orc, csv 등)을 선택할 수 있습니다.
'Bigdata Hadoop' 카테고리의 다른 글
데이터 과학/빅데이터 실험실 - 4부 중 2부: 3노드 클러스터에서 Ubuntu 20.04를 통한 Hadoop 3.2.1 및 Spark 3.0.0 사용하기 (1) | 2024.07.22 |
---|---|
BigData-02 (0) | 2024.07.21 |
Bigdata- 01 (1) | 2024.07.20 |
Unit sshd.service could not be found 에러 해결 (3) | 2024.07.19 |
빅 데이터 - 클러스터 환경: Raspberry Pi-4, Hadoop 및 Spark 기반 (0) | 2024.07.17 |
데이터 과학/빅데이터 실험실 - 4부 중 1부: 라즈베리 파이 또는 VM 클러스터 - OS 및 통신 (1) | 2024.07.09 |
Windows에 Hadoop을 설치하는 방법 (1) | 2024.07.06 |
우분투에 빅데이터 모듈을 설치하는 순서 (1) | 2024.07.05 |
더욱 좋은 정보를 제공하겠습니다.~ ^^