Usa collect_list y collect_set en Spark SQL

De acuerdo con los documentos , las funciones collect_set y collect_list deberían estar disponibles en Spark SQL. Sin embargo, no puedo hacer que funcione. Estoy ejecutando Spark 1.6.0 usando una imagen Docker .

Estoy tratando de hacer esto en Scala:

 import org.apache.spark.sql.functions._ df.groupBy("column1") .agg(collect_set("column2")) .show() 

Y reciba el siguiente error en tiempo de ejecución:

 Exception in thread "main" org.apache.spark.sql.AnalysisException: undefined function collect_set; 

También lo probé usando pyspark , pero también falla. Los documentos indican que estas funciones son alias de UDAF de Hive, pero no me puedo imaginar para habilitar estas funciones.

¿Cómo arreglar esto? Gracias!

Spark 2.0+ :

SPARK-10605 presentó la recostackción nativa collect_list y la implementación de collect_set . SparkSession con Hive support o HiveContext ya no son necesarios.

Spark 2.0-SNAPSHOT (before 2016-05-03) :

SparkSession habilitar el soporte de Hive para una SparkSession determinada:

En Scala:

 val spark = SparkSession.builder .master("local") .appName("testing") .enableHiveSupport() // <- enable Hive support. .getOrCreate() 

En Python:

 spark = (SparkSession.builder .enableHiveSupport() .getOrCreate()) 

Spark <2.0 :

Para poder usar las UDF de Hive (consulte https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF ), usted ha utilizado Spark con soporte Hive (esto ya está cubierto cuando usa binarios precomstackdos parece ser el caso aquí) e inicializar SparkContext usando HiveContext .

En Scala:

 import org.apache.spark.sql.hive.HiveContext import org.apache.spark.sql.SQLContext val sqlContext: SQLContext = new HiveContext(sc) 

En Python:

 from pyspark.sql import HiveContext sqlContext = HiveContext(sc)