스택큐힙리스트

Spark에서 출력 디렉토리를 덮어쓰는 방법 본문

카테고리 없음

Spark에서 출력 디렉토리를 덮어쓰는 방법

스택큐힙리스트 2023. 11. 29. 00:02
반응형

매 분마다 데이터셋을 생성하는 스파크 스트리밍 애플리케이션이 있습니다.
처리된 데이터의 결과를 저장하거나 덮어쓰기를 해야합니다.


데이터셋을 덮어쓰려고 할 때 org.apache.hadoop.mapred.FileAlreadyExistsException이 실행을 중단합니다.


Spark 속성 set(spark.files.overwrite,true)을 설정했지만 행운이 따르지 않습니다.


Spark에서 파일을 덮어쓰거나 사전 삭제하는 방법은 무엇인가요?

답변 1

UPDATE: Dataframes와 함께 ... .write.mode(SaveMode.Overwrite) ...를 사용하는 것을 제안합니다.


Handy pimp:


implicit class PimpedStringRDD(rdd: RDD[String]) {
def write(p: String)(implicit ss: SparkSession): Unit = {
import ss.implicits._
rdd.toDF().as[String].write.mode(SaveMode.Overwrite).text(p)
}
}

이전 버전용으로 시도해보세요


yourSparkConf.set(spark.hadoop.validateOutputSpecs, false)
val sc = SparkContext(yourSparkConf)

1.1.0에서는 스파크-서브밋 스크립트에서 --conf 플래그를 사용하여 conf 설정을 설정할 수 있습니다.


경고 (이전 버전): @piggybox에 따르면, Spark에는 필요한 part- 파일만 덮어쓰고 다른 파일은 보존되는 버그가 있습니다.

답변 2

스파크에서 출력 디렉토리를 덮어쓰는 방법에 대해 알아보겠습니다. 스파크는 대규모 데이터 처리를위한 엔진으로 우수한 성능과 확장성을 제공합니다. 스파크를 사용하여 작업을 수행하면 생성된 결과 데이터를 지정된 출력 디렉토리에 저장할 수 있습니다. 우리는 출력 디렉토리를 원하는 대로 덮어쓰는 방법을 알아볼 것입니다.
스파크에서 출력 디렉토리를 덮어쓰려면 다음 단계를 따릅니다:
1. 우선, 스파크 세션을 시작하겠습니다. 이를위한 코드 예시는 다음과 같습니다:
```python
from pyspark.sql import SparkSession
sparkSession = SparkSession.builder \
.appName(Overwrite Output Directory) \
.getOrCreate()
```
2. 다음으로, 스파크 세션에서 사용할 입력 데이터를 로드하겠습니다. 이는 작업에 따라 다를 수 있습니다. 예를 들어, CSV 파일을 로드하려는 경우 다음과 같이 코드를 작성합니다:
```python
inputDataframe = sparkSession.read.csv(path/to/input.csv, header=True, inferSchema=True)
```
3. 출력 디렉토리를 지정합니다. 이는 작업에 따라 다를 수 있습니다. 다음은 CSV 파일로 출력 디렉토리를 지정하는 예시입니다:
```python
outputDirectory = path/to/output.csv
```
4. 이제 작업을 수행하여 결과 데이터를 생성하고, 결과를 지정된 출력 디렉토리에 저장하겠습니다. 예를 들어, 결과를 CSV 파일로 저장하고 싶다면 다음과 같은 코드를 작성합니다:
```python
outputDataframe.write.mode(overwrite).csv(outputDirectory)
```
위의 코드에서 `mode(overwrite)`는 출력 디렉토리에 이미 파일이 존재하는 경우 덮어쓸 것을 나타냅니다.
5. 마지막으로, 스파크 세션을 종료합니다:
```python
sparkSession.stop()
```
이렇게 하면 스파크에서 출력 디렉토리를 덮어쓸 수 있습니다. 스파크는 대용량 데이터 처리를위한 강력한 도구이며, 출력 디렉토리를 덮어쓰는 방법에 대해 알아보았습니다. 이를 통해 원하는 대로 결과 데이터를 관리할 수 있습니다.
추가로, 출력 디렉토리를 덮어쓰는 방법 외에도 스파크에서는 다양한 데이터 처리 작업을 수행할 수 있습니다. 데이터 프로세싱, 머신 러닝, 그래프 처리 등 다양한 작업을 지원하므로 필요에 따라 다양한 스파크 기능을 활용할 수 있습니다. 이를 통해 데이터 처리 작업을 효율적이고 빠르게 수행할 수 있습니다.

반응형
Comments