기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS Glue는 소스에서 데이터를 검색하고 다양한 데이터 형식으로 저장 및 전송되는 대상에 데이터를 씁니다. 데이터가 ORC 데이터 형식으로 저장 또는 전송되는 경우 이 문서에서는 AWS Glue에서 데이터를 사용하는 데 사용할 수 있는 기능을 소개합니다.
AWS Glue는 ORC 형식 사용을 지원합니다. 이 형식은 성능 중심의 열 기반 데이터 형식입니다. 표준 기관의 형식에 대한 소개는 Apache Orc를 참조하세요.
AWS Glue를 사용하여 Amazon S3와 스트리밍 소스에서 ORC 파일을 읽을 수 있을 뿐만 아니라 Amazon S3에 ORC 파일을 쓸 수 있습니다. S3에서 ORC 파일이 포함된 bzip
및 gzip
아카이브를 읽고 쓸 수 있습니다. 이 페이지에서 설명하는 구성 대신 S3 연결 파라미터에서 압축 동작을 구성할 수 있습니다.
다음 표에서는 ORC 형식 옵션을 지원하는 일반적인 AWS Glue 기능을 보여 줍니다.
읽기 |
쓰기 |
스트리밍 읽기 |
작은 파일 그룹화 |
작업 북마크 |
지원 |
지원 |
지원 |
지원되지 않음 |
지원* |
* AWS Glue 버전 1.0 이상에서 지원
사전 조건: 읽으려는 ORC 파일 또는 폴더에 대한 S3 경로(s3path
)가 필요합니다.
구성: 함수 옵션에서 format="orc"
를 지정합니다. connection_options
에서 paths
키를 사용하여 s3path
를 지정합니다. connection_options
에서 리더와 S3가 상호 작용하는 방식을 구성할 수 있습니다. 자세한 내용은 AWS Glue에서 ETL 관련 연결 유형 및 옵션 참조: Amazon S3 연결 옵션 참조
다음 AWS Glue ETL 스크립트는 S3에서 ORC 파일 또는 폴더를 읽는 프로세스를 보여 줍니다.
- Python
-
이 예에서는 create_dynamic_frame.from_options 메서드를 사용합니다.
from pyspark.context import SparkContext
from awsglue.context import GlueContext
sc = SparkContext.getOrCreate()
glueContext = GlueContext(sc)
dynamicFrame = glueContext.create_dynamic_frame.from_options(
connection_type="s3",
connection_options={"paths": ["s3://s3path
"]},
format="orc"
)
또한 스크립트(pyspark.sql.DataFrame
)에서 DataFrame을 사용합니다.
dataFrame = spark.read\
.orc("s3://s3path
")
- Scala
-
이 예에서는 getSourceWithFormat 작업을 사용합니다.
import com.amazonaws.services.glue.util.JsonOptions
import com.amazonaws.services.glue.GlueContext
import org.apache.spark.sql.SparkContext
object GlueApp {
def main(sysArgs: Array[String]): Unit = {
val spark: SparkContext = new SparkContext()
val glueContext: GlueContext = new GlueContext(spark)
val dynamicFrame = glueContext.getSourceWithFormat(
connectionType="s3",
format="orc",
options=JsonOptions("""{"paths": ["s3://s3path
"]}""")
).getDynamicFrame()
}
}
또한 스크립트(pyspark.sql.DataFrame
)에서 DataFrame을 사용합니다.
val dataFrame = spark.read
.orc("s3://s3path
")
사전 조건: 초기화된 DataFrame(dataFrame
) 또는 DynamicFrame(dynamicFrame
)이 필요합니다. 예상되는 S3 출력 경로(s3path
)도 필요합니다.
구성: 함수 옵션에서 format="orc"
를 지정합니다. 연결 옵션에서 paths
키를 사용하여 s3path
를 지정합니다. connection_options
에서 라이터가 S3와 상호 작용하는 방식을 추가로 변경할 수 있습니다. 자세한 내용은 AWS Glue: Amazon S3 연결 옵션 참조의 ETL 입력 및 출력에 대한 데이터 형식 옵션을 참조하세요. 다음 코드 예제는 프로세스를 보여 줍니다.
- Python
-
이 예에서는 write_dynamic_frame.from_options 메서드를 사용합니다.
from pyspark.context import SparkContext
from awsglue.context import GlueContext
sc = SparkContext.getOrCreate()
glueContext = GlueContext(sc)
glueContext.write_dynamic_frame.from_options(
frame=dynamicFrame
,
connection_type="s3",
format="orc",
connection_options={
"path": "s3://s3path
"
}
)
또한 스크립트(pyspark.sql.DataFrame
)에서 DataFrame을 사용합니다.
df.write.orc("s3://s3path
/")
- Scala
-
이 예에서는 getSinkWithFormat 메서드를 사용합니다.
import com.amazonaws.services.glue.util.JsonOptions
import com.amazonaws.services.glue.{DynamicFrame, GlueContext}
import org.apache.spark.SparkContext
object GlueApp {
def main(sysArgs: Array[String]): Unit = {
val spark: SparkContext = new SparkContext()
val glueContext: GlueContext = new GlueContext(spark)
glueContext.getSinkWithFormat(
connectionType="s3",
options=JsonOptions("""{"path": "s3://s3path
"}"""),
format="orc"
).writeDynamicFrame(dynamicFrame
)
}
}
또한 스크립트(pyspark.sql.DataFrame
)에서 DataFrame을 사용합니다.
df.write.orc("s3://s3path
/")
format="orc"
을 위한 format_options
값은 없습니다. 그러나 SparkSQL 기초 코드에 의해 수락된 옵션은 connection_options
맵 파라미터를 거쳐 SparkSQL 기초 코드로 넘겨질 수 있습니다.