@Test
public void collectTest(){
SparkSession spark = SparkSession.builder()
.master("local[2]")
.getOrCreate();
//转换为list,里面为rows,取出第一个row再取出值为String
Dataset<Row> df = spark.sql("SELECT 'AHA' AS TEXT");
List<Row> rows = df.takeAsList(1);
System.out.println(rows.get(0).getString(0));
//转换为javaRDD,再取出第一个row再取出值为String
List<Row> collect = df.javaRDD().collect();
String string = collect.get(0).getString(0);
System.out.println(string);
spark.stop();
73.2. Scala代码
举个栗子🌰,以下方法直接使用collect方法
def isWorkDay(sparkSession: SparkSession, properties: Properties, date: String): Boolean = {
val result = sparkSession.sql(
s"""
|select case date_type when 0 then true else false end
|from 日期表
|""".stripMargin).collect()
if (result.length == 0) {
} else {
result(0).getBoolean(0)