Using:
在 Apache Spark Java API 文档中,DataSet 类出现了一个example http://spark.apache.org/docs/latest/api/java/org/apache/spark/sql/Dataset.html#join(org.apache.spark.sql.Dataset,%20scala.collection.Seq)使用 scala.collection.Seq 参数的 join 方法来指定列名称。但我无法使用它。
他们在文档中提供了以下示例:
df1.join(df2, Seq("user_id", "user_name"))
错误:找不到符号方法 Seq(String)
My Code:
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import scala.collection.Seq;
public class UserProfiles {
public static void calcTopShopLookup() {
Dataset<Row> udp = Spark.getDataFrameFromMySQL("my_schema","table_1");
Dataset<Row> result = Spark.getSparkSession().table("table_2").join(udp,Seq("col_1","col_2"));
}
Seq(x, y, ...)
是一种创建序列的 Scala 方法。 Seq 有它的伴生对象,它有 apply 方法,允许不写new
每一次。
应该可以这样写:
import scala.collection.JavaConversions;
import scala.collection.Seq;
import static java.util.Arrays.asList;
Dataset<Row> result = Spark.getSparkSession().table("table_2").join(udp, JavaConversions.asScalaBuffer(asList("col_1","col_2")));`
或者你可以创建自己的小方法:
public static <T> Seq<T> asSeq(T... values) {
return JavaConversions.asScalaBuffer(asList(values));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)