Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在spark中处理这种情况?_Java_Apache Spark_Apache Spark Sql - Fatal编程技术网

Java 如何在spark中处理这种情况?

Java 如何在spark中处理这种情况?,java,apache-spark,apache-spark-sql,Java,Apache Spark,Apache Spark Sql,我正在使用spark-sql-2.4.1v和Java1.8。 我有两个数据集 Dataset<Company> firstDataset = //get/read data from oracle company table. Dataset<CompanyTransaction> secondDataset = //get/read data from oracle company_transaction table. Dataset firstDataset=/

我正在使用spark-sql-2.4.1v和Java1.8。 我有两个数据集

Dataset<Company> firstDataset = //get/read data from oracle company table.


Dataset<CompanyTransaction> secondDataset = //get/read data from oracle company_transaction table.
Dataset firstDataset=//从oracle公司表获取/读取数据。
Dataset secondDataset=//从oracle公司事务表获取/读取数据。
Company
有类似于
“companyId”、“companyName”、“companyRegion”、“column4”、“column5”等列

CompanyTransaction
有类似于
“companyId”、“transactionId”、“transactionType”、“column4”、“column5”等列

对于firstDataset中的每个companyId,我需要从CompanyTransaction中获取各自的companyId数据


如何使用spark实现这一点?

基于公司id连接两个数据集,并从第二个数据集中选择所有列。代码应该如下所示:(未测试)

Dataset finalDf=firstDataset.join(secondDataset
,firstDataset.col(“companyId”).equalTo(secondDataset.col(“companyId”),
“内部”).select(secondDataset.col(“*))
finalDF.show()

您尝试了什么?请使用回答中的
Dataset.join
运算符。还有什么要回答的吗?如果您有一个复合键,它应该包含在join列中。如果您特别想执行每个操作,请探索“Mappartition”“在斯巴克塔斯,这是正确的。但这是我们可以从我们这边强制执行的唯一优化执行方式。因为计算将进入每个部分
Dataset<Row> finalDf = firstDataset.join(secondDataset 
,firstDataset.col("companyId").equalTo(secondDataset.col("companyid"), 
"inner").select(secondDataset .col("*))
finalDF.show()