본문 바로가기
BigData/Spark

Dataset DataFrame Convert

by 아이티.파머 2020. 4. 6.
반응형

2020/04/03 - [BigData/Spark] - spark linux install (Master / Worker)

2020/04/06 - [BigData/Spark] - spark sql

2020/04/06 - [BigData/Spark] - Spark 모니터링

2020/04/06 - [BigData/Spark] - Spark Dataset

2020/04/06 - [BigData/Spark] - Spark Dataset 데이터 조회 예제

2020/04/06 - [BigData/Spark] - Dataset DataFrame Convert

2020/04/06 - [BigData/Spark] - Spark submit

 

 

 

데이터를 사용할때 JavaBean 의 List를 사용할때도, 반대로 List를 Dataset 으로 만들어 사용 할때가 있다. sparkSession.createDataset() , sparkSession.createDataFrame(rows, schema); 을 사용하여 데이터를 변환하여 사용한다.

/**
 * List<T> 파일을 Dataset<T> 으로 변형 하기
 * @param list
 * @param tClass
 * @param <T>
 * @param <D>
 * @return
 */
public <T,D> Dataset<T> convertDataset (List<T> list, Class<T> tClass) {
    SparkSession sparkSession = SparkSessionPool.getSparkSession();
    Encoder<T> personEncoder = Encoders.bean(tClass);

    return sparkSession.createDataset(list,personEncoder);
}

/**
 * List<T> (리스트)로 데이터 프레임 생성 하기
 * @param <T>
 * @param data
 * @param beanClass
 * @return
 */
public <T> Dataset<Row> createDataFrame(List<T> data, Class<T> beanClass) {
	SparkSession sparkSession = SparkSessionPool.getSparkSession();
	
	return sparkSession.createDataFrame(data, beanClass);
}

/**
 * 
 * @param rows
 * @param schema
 * @return
 */
public Dataset<Row> createDataFrame(List<Row> rows, StructType schema ) {
	SparkSession sparkSession = SparkSessionPool.getSparkSession();
	return  sparkSession.createDataFrame(rows, schema);
}
반응형

'BigData > Spark' 카테고리의 다른 글

Spark submit  (0) 2020.04.06
Spark Dataset 데이터 조회 예제  (0) 2020.04.06
Spark Dataset  (0) 2020.04.06
Spark 모니터링  (0) 2020.04.06
spark sql  (0) 2020.04.06