[SCALA] 파티션에 행을 변환하는 방법
SCALA파티션에 행을 변환하는 방법
나는 불꽃의 시나리오를 가지고있다. 파티션 데이터 프레임에 있습니다. 수득 한 번에 각 파티션에 의해 처리되어야한다.
List<String> data = Arrays.asList("con_dist_1", "con_dist_2",
"con_dist_3", "con_dist_4", "con_dist_5",
"con_dist_6");
Dataset<Row> codes = sparkSession.createDataset(data, Encoders.STRING());
Dataset<Row> partitioned_codes = codes.repartition(col("codes"));
// I need to paritition it dues to functional requirement
partitioned_codes.foreachPartition(itr -> {
if (itr.hasNext()) {
Row inrow = itr.next();
System.out.println("inrow.length : " + inrow.length());
System.out.println(inrow.toString());
List<Object> objs = inrow.getList(0);
}
});
가져 오기 오류
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to scala.collection.Seq
at org.apache.spark.sql.Row$class.getSeq(Row.scala:283)
at org.apache.spark.sql.catalyst.expressions.GenericRow.getSeq(rows.scala:166)
at org.apache.spark.sql.Row$class.getList(Row.scala:291)
at org.apache.spark.sql.catalyst.expressions.GenericRow.getList(rows.scala:166)
질문 : 어떻게 여기 foreachPartition을 처리하기 위해, 각각의 반복은 행의 그룹을 구성 곳 ITR, 어떻게 ITR를 사용하는 행을 얻으려면?
해결법
from https://stackoverflow.com/questions/60485240/how-to-convert-row-in-partition by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 왜 검증 모나드 아닌가요? (0) | 2020.03.04 |
---|---|
[SCALA] 어떻게 스칼라에서 서로 다른 두 개의 dataframe 인쇄 열을 비교 (0) | 2020.02.21 |
[SCALA] 스칼라의 경우 클래스 개인 생성자하지만 대중은 방법을 적용 (0) | 2020.02.15 |
[SCALA] 왜 NullPointerException이에서 UDF 결과에서 DataFrame를 accesing? (0) | 2020.02.08 |
[SCALA] 선물 / 성공 경주 (0) | 2020.01.24 |