[SCALA] 스파크 데이터 세트 컬럼 내로 ADT / 밀봉 특성 계층을 인코딩
SCALA스파크 데이터 세트 컬럼 내로 ADT / 밀봉 특성 계층을 인코딩
나는 불꽃 데이터 집합 열 내에서 대수 데이터 타입 (ADT)을 (스칼라는 특성 계층 구조를 밀봉 예) 저장하려면, 최고의 인코딩 전략은 무엇인가?
예를 들어, 나는 잎 종류가 다른 종류의 데이터를 저장 ADT이있는 경우 :
sealed trait Occupation
case object SoftwareEngineer extends Occupation
case class Wizard(level: Int) extends Occupation
case class Other(description: String) extends Occupation
무엇이 가장 좋은 방법은 구성하는 방법 :
org.apache.spark.sql.DataSet[Occupation]
해결법
-
==============================
1.TL; DR 지금은 좋은 해결책이 없다, 주어진 스파크 SQL / 데이터 집합 구현, 가까운 장래에 하나있을 것이다 않을 수 있습니다.
TL; DR 지금은 좋은 해결책이 없다, 주어진 스파크 SQL / 데이터 집합 구현, 가까운 장래에 하나있을 것이다 않을 수 있습니다.
당신은 일반적인 kryo 또는 자바 인코더를 사용할 수 있습니다
val occupation: Seq[Occupation] = Seq(SoftwareEngineer, Wizard(1), Other("foo")) spark.createDataset(occupation)(org.apache.spark.sql.Encoders.kryo[Occupation])
하지만 실제로는 거의 유용하다.
UDT API는 (당신이 구현 예를 볼 수 o.a.s.ml.linalg.VectorUDT를 확인하실 수 있습니다) 비공개이며, 꽤 많은 상용구 코드를 필요로 지금과 같은 다른 가능한 접근 방식 (스파크 1.6, 2.0, 2.1-SNAPSHOT)를 제공합니다.
from https://stackoverflow.com/questions/41030073/encode-an-adt-sealed-trait-hierarchy-into-spark-dataset-column by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 스칼라 정규식 일치 자바 하나의 성공, 실패 (0) | 2019.11.13 |
---|---|
[SCALA] List.filter에 밑줄 (0) | 2019.11.13 |
[SCALA] 가져 오기 TypeTag [A] 클래스에서 [A] (0) | 2019.11.13 |
[SCALA] 어떻게하면 saveAsTextFile RDD [(문자열, INT)]에 기록 괄호를 제거하려면? (0) | 2019.11.13 |
[SCALA] 스파크 DataFrame에서 === null이 isNull에 차이 (0) | 2019.11.13 |