[HADOOP] 불꽃 폭발 구조체
HADOOP불꽃 폭발 구조체
나는 다음과 같은 스키마 DataFrame 있습니다 :
|-- data: struct (nullable = true)
| |-- asin: string (nullable = true)
| |-- customerId: long (nullable = true)
| |-- eventTime: long (nullable = true)
| |-- marketplaceId: long (nullable = true)
| |-- rating: long (nullable = true)
| |-- region: string (nullable = true)
| |-- type: string (nullable = true)
|-- uploadedDate: long (nullable = true)
나는 그런 ASIN, 고객 ID를, 같은 모든 요소가 DataFrame의 열이 될 EVENTTIME하는 구조체를 폭발합니다. 나는 기능을 폭발하려하지만 구조체 유형에 배열하지에 작동합니다. 그것은 dataframe 이하로 할 데이터 프레임을 변환 할 수 있습니다 :
|-- asin: string (nullable = true)
|-- customerId: long (nullable = true)
|-- eventTime: long (nullable = true)
|-- marketplaceId: long (nullable = true)
|-- rating: long (nullable = true)
|-- region: string (nullable = true)
|-- type: string (nullable = true)
|-- uploadedDate: long (nullable = true)
해결법
-
==============================
1.그것은 매우 간단합니다 :
그것은 매우 간단합니다 :
val newDF = df.select("uploadedDate", "data.*");
그런 다음 필드 데이터의 모든 하위 요소를 uploadedDate을 선택하고 이야기
예:
scala> case class A(a: Int, b: Double) scala> val df = Seq((A(1, 1.0), "1"), (A(2, 2.0), "2")).toDF("data", "uploadedDate") scala> val newDF = df.select("uploadedDate", "data.*") scala> newDF.show() +------------+---+---+ |uploadedDate| a| b| +------------+---+---+ | 1| 1|1.0| | 2| 2|2.0| +------------+---+---+ scala> newDF.printSchema() root |-- uploadedDate: string (nullable = true) |-- a: integer (nullable = true) |-- b: double (nullable = true)
from https://stackoverflow.com/questions/47285871/exploded-struct-in-spark by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hadoop-> Mapper-> 우리가 어떻게 주어진 입력 경로에서 각 파일에서만 상위 N 행을 읽을 수 있습니까? (0) | 2019.09.22 |
---|---|
[HADOOP] HiveQL에서 "ALTER TABLE IF는 t2에서는 TO T1의 RENAME 존재"? (0) | 2019.09.22 |
[HADOOP] CDH 커뮤니티 에디션 롤링은 5.7에서 5.13로 업그레이드 (0) | 2019.09.22 |
[HADOOP] FsUrlStreamHandlerFactory와 유래 (0) | 2019.09.22 |
[HADOOP] 왜 우리는 우리가 컴퓨터를 다시 시작할 때마다 후 HDFS를 포맷해야합니까? (0) | 2019.09.22 |