수색…


소개

DataFrame은 행과 유형이 지정된 열로 구성된 데이터의 추상화입니다. 관계형 SQL 기반 데이터베이스에있는 데이터와 유사합니다. Spark 2.0의 Dataset [Row]에 대한 유형 별칭으로 변형되었지만 스키마 유연성과 SQL 기반 연산을 사용하는 복잡한 처리 파이프 라인에 여전히 널리 사용되고 유용합니다.

Scala에서 DataFrames 만들기

DataFrames를 만드는 방법에는 여러 가지가 있습니다. 로컬 목록, 분산 RDD 또는 데이터 소스에서 읽는 방법으로 만들 수 있습니다.

toDF 사용

spark sql implicits를 가져옴으로써 내용이 Product 하위 유형 (튜플 및 사례 클래스는 Product 하위 유형의 잘 알려진 예제) 인 한 로컬 Seq, Array 또는 RDD에서 DataFrame을 작성할 수 있습니다. 예 :

import sqlContext.implicits._
val df = Seq(
  (1, "First Value", java.sql.Date.valueOf("2010-01-01")),
  (2, "Second Value", java.sql.Date.valueOf("2010-02-01"))
).toDF("int_column", "string_column", "date_column")

createDataFrame 사용

또 다른 옵션은 SQLcontext에있는 createDataFrame 메소드를 사용하는 것입니다. 이 옵션을 사용하면 Product 하위 유형의 로컬 목록 또는 RDD에서 toDFtoDF 있지만 열의 이름은 동일한 단계에서 설정되지 않습니다. 예 :

val df1 = sqlContext.createDataFrame(Seq(
  (1, "First Value", java.sql.Date.valueOf("2010-01-01")),
  (2, "Second Value", java.sql.Date.valueOf("2010-02-01"))
))

또한이 방법을 사용하면 결과 DataFrame의 스키마 정의를 위해 schema 매개 변수가 전달되는 한 Row 인스턴스를 RDD에서 만들 수 있습니다. 예:

import org.apache.spark.sql.types._
val schema = StructType(List(
    StructField("integer_column", IntegerType, nullable = false),
    StructField("string_column", StringType, nullable = true),
    StructField("date_column", DateType, nullable = true)
))

val rdd = sc.parallelize(Seq(
  Row(1, "First Value", java.sql.Date.valueOf("2010-01-01")),
  Row(2, "Second Value", java.sql.Date.valueOf("2010-02-01"))
))

val df = sqlContext.createDataFrame(rdd, schema)

출처에서 읽기

DataFrame을 만드는 가장 일반적인 방법은 데이터 소스를 사용하는 것입니다. 하나는 hdfs의 쪽매 파일에서 만들 수 있습니다. 예를 들면 다음과 같습니다 :

val df = sqlContext.read.parquet("hdfs:/path/to/file")


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow