Как исправить ошибку: несоответствие типов при создании графических фреймов с помощью Scala API - PullRequest
0 голосов
/ 15 апреля 2019

Я работаю с Spark2.3.2 и GraphFrames 0.7.0.
У меня есть два кадра данных: node2attrDf и edge2attrDf, чтобы сгенерировать их код как: https://gist.github.com/superPershing/56928c4f5420ea6334d7a9f6e389bda5

И их схема такая:

scala> node2attrDf.printSchema
root
 |-- id: integer (nullable = true)
 |-- combined: array (nullable = true)
 |    |-- element: array (containsNull = true)
 |    |    |-- element: integer (containsNull = false)

scala> edge2attrDf.printSchema
root
 |-- src: integer (nullable = true)
 |-- dst: integer (nullable = true)
 |-- info: struct (nullable = false)
 |    |-- dstNeighbors: array (nullable = true)
 |    |    |-- element: long (containsNull = false)
 |    |-- J: array (nullable = true)
 |    |    |-- element: integer (containsNull = false)
 |    |-- q: array (nullable = true)
 |    |    |-- element: double (containsNull = false)

scala> node2attrDf.show(5)
+---+--------------------+
| id|            combined|
+---+--------------------+
|148|[[405, 3], [121, ...|
|463|[[131, 2], [213, ...|
|471|[[117, 7], [7, 6]...|
|496|[[134, 7], [127, ...|
|833|[[597, 4], [566, ...|
+---+--------------------+
only showing top 5 rows

scala> edge2attrDf.show(5)
+---+---+------------+
|src|dst|        info|
+---+---+------------+
|780|725|[[], [], []]|
|266|351|[[], [], []]|
|285|132|[[], [], []]|
|328|748|[[], [], []]|
|275|487|[[], [], []]|
+---+---+------------+
only showing top 5 rows

Когда я создаю новые графические рамки с двумя информационными рамками:

val gDF = GraphFrame(node2attrDf, edge2attrDf)

ошибка происходит:

scala> val gDF = GraphFrame(node2attrDf, edge2attrDf)
<console>:31: error: type mismatch;
 found   : org.apache.spark.sql.org.apache.spark.sql.org.apache.spark.sql.org.apache.spark.sql.org.apache.spark.sql.DataFrame
    (which expands to)  org.apache.spark.sql.Dataset[org.apache.spark.sql.Row]
 required: org.apache.spark.sql.org.apache.spark.sql.org.apache.spark.sql.org.apache.spark.sql.org.apache.spark.sql.DataFrame
    (which expands to)  org.apache.spark.sql.Dataset[org.apache.spark.sql.Row]
       val gDF = GraphFrame(node2attrDf, edge2attrDf)
                            ^
<console>:31: error: type mismatch;
 found   : org.apache.spark.sql.org.apache.spark.sql.org.apache.spark.sql.org.apache.spark.sql.org.apache.spark.sql.DataFrame
    (which expands to)  org.apache.spark.sql.Dataset[org.apache.spark.sql.Row]
 required: org.apache.spark.sql.org.apache.spark.sql.org.apache.spark.sql.org.apache.spark.sql.org.apache.spark.sql.DataFrame
    (which expands to)  org.apache.spark.sql.Dataset[org.apache.spark.sql.Row]
       val gDF = GraphFrame(node2attrDf, edge2attrDf)
                                         ^

Кажется, что найденный тип и требуемый тип совпадают. Так почему же происходит эта ошибка и как ее исправить?

...