Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
Apache spark 如何用Dataset表示Java Spark中的平面图_Apache Spark_Graph_Apache Spark Dataset - Fatal编程技术网

Apache spark 如何用Dataset表示Java Spark中的平面图

Apache spark 如何用Dataset表示Java Spark中的平面图,apache-spark,graph,apache-spark-dataset,Apache Spark,Graph,Apache Spark Dataset,给定具有两列的数据集,例如: FatherNode, ChildNode A, B A, C B, D B, F C, G H, I H, L M, I M, B F, J Z, K 我想构建一个表示平面图的新数据集,即每个节点的所有可能目的地的表示,因此,在本例中,新数据集应为: Node, PossibleDestinations A, [B, C, D, F, J] B, [D, F, J] C, [G] H, [I, L] M, [I, B, D, F, J] F, [J] Z, [K

给定具有两列的数据集,例如:

FatherNode, ChildNode
A, B
A, C
B, D
B, F
C, G
H, I
H, L
M, I
M, B
F, J
Z, K
我想构建一个表示平面图的新数据集,即每个节点的所有可能目的地的表示,因此,在本例中,新数据集应为:

Node, PossibleDestinations
A, [B, C, D, F, J]
B, [D, F, J]
C, [G]
H, [I, L]
M, [I, B, D, F, J]
F, [J]
Z, [K]
例如,A可以到达BCDFJ:路径无关紧要

我的简单代码(已实现)是:

import org.apache.spark.sql.Dataset;
导入org.apache.spark.sql.Row;
导入org.apache.spark.sql.SparkSession;
导入静态org.apache.spark.sql.functions.array;
导入静态org.apache.spark.sql.functions.col;
公共类平面图{
公共静态void main(字符串[]args){
SparkSession spark=SparkSession.builder().appName(“平面图”).getOrCreate();
数据集csvData=spark.read().option(“header”,“true”).csv(“data.csv”).cache();
csvData.show();
Dataset flatGraph=[…];//此处可以执行哪些操作?
flatGraph.show();
spark.stop();
}
}

看一看。纯数据帧操作并不最适合于图形计算。另请参阅“非常感谢您的快速响应”,但我们无法使用外部库,因为代理会阻止Maven未经授权的库:(GraphX是Spark的一部分,不是第三方库。为什么当我添加
导入org.apache.Spark.GraphX.Graph;
时,我得到的
包org.apache.Spark.GraphX不存在
?但是我添加
导入org.apache.Spark.sql.Dataset;
或其他文件都没有问题。@kitsune Spark版本?请看一下。纯数据帧操作是n。)ot最适合于图形计算。另请参阅“非常感谢您的快速响应”,但我们无法使用外部库,因为代理会阻止Maven未经授权的库:(GraphX是Spark的一部分,不是第三方库。为什么当我添加
import org.apache.Spark.GraphX.Graph;
时,我得到的
包org.apache.Spark.GraphX不存在
?但是我添加
import org.apache.Spark.sql.Dataset;
或其他文件都没有问题。@kitsune Spark版本?
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
import org.apache.spark.sql.SparkSession;

import static org.apache.spark.sql.functions.array;
import static org.apache.spark.sql.functions.col;

public class FlatGraph {
    public static void main(String[] args) {
        SparkSession spark = SparkSession.builder().appName("Flat Graph").getOrCreate();
        Dataset<Row> csvData = spark.read().option("header", "true").csv("data.csv").cache();
        csvData.show();
        Dataset<Row> flatGraph = [...]; // What operations could be performed here?
        flatGraph.show();
        spark.stop();
    }
}