Spark 2.0의 데이터 셋(dataset)은 다음과 같이 정의되어 있다.



type DataFrame = Dataset[Row]



Dataset은 스키마를 갖고 있다. 


(spark 1.5) DataFrame에 encoder를 추가한 것이 Dataset이라 할 수 있다.  


(spark 2.0) DataFrame은 특별한 encoder 없이 Dataset[Row]의 앨리어스로 쓸 수 있게 되었다.





데이터 셋을 고도로 최적화한 바이너리(binary)로 표현하는 RDD의 효율적인 테이블로 생각할 수 있다.


바이너리 표현은 인코더(encoder)를 사용해 이루어 진다.


인코더는 RDD 표현보다 성능이 더 좋은 다양한 오브젝트를 바이너리 구조로 직렬화한다.


데이터 프레임은 내부적으로 RDD를 내부적으로 사용하고 데이터 프레임/데이터 셋은 RDD와 동일하게 배포되므로 분산 데이터 집합이기도 하다.


분명 데이터 셋은 불변임을 의미한다.

Posted by '김용환'
,


Play2와 webjar를 이용해 React를 개발하고 있다.


react-infinite.js를 사용하다가 다음과 같은 에러가 발생되었다. 



org.webjars.MultipleMatchesException: Multiple matches found for react-infinite.js. 

Please provide a more specific path, for example by including a version number.




디버깅 버전으로 테스트해보니..(https://github.com/knight76/webjars-locator-core)


build와 dist 디렉토리에 동일한 파일이 있음을 확인했다. 



react-infinite.js/build/0.11.0/react-infinite/webjars/resources/META-INF/=META-INF/resources/webjars/react-infinite/0.11.0/build/react-infinite.js, 

react-infinite.js/dist/0.11.0/react-infinite/webjars/resources/META-INF/=META-INF/resources/webjars/react-infinite/0.11.0/dist/react-infinite.js, 



다음과 같이 build.sbt를 수정하면 된다. 

excludeDependencies ++= Seq(
"org.webjars.npm" % "react-infinite"
)



unmanagedJars in Compile += file("lib/react-infinite-without-conflict-0.11.0.jar")



ivy2에서 캐싱된 내용때문에 그냥 실행하면 기존 파일이 남아 있을 수 있다. 

그리고 새롭게 변경된 lib을 사용할 때마다 다음 커맨드를 실행한다. 


# sbt clean

# sbt clean-files






Posted by '김용환'
,