Неоднозначная ошибка столбца Spark 2.3.2, Scala 2.11.8 - PullRequest
0 голосов
/ 04 апреля 2019

Неоднозначная ошибка Spark 2.3.2, Scala 2.11.8

Это действительно проблема с двигателем Scala или исправлена?

Пожалуйста, дайте мне знать ваши мысли и ответы

import spark.implicits._

val llist = Seq(("bob", "2015-01-13", 4), ("alice", "2015-04-23",10))
val left = llist.toDF("name","date","duration")//.registerTempTable("table1")
val right = Seq(("alice", 100),("bob", 23)).toDF("name","upload")//.registerTempTable("table2")
val df = left.join(right, left.col("name") === right.col("name"),
  "LeftOuter").filter("duration > 5")
  .select(left.col("name").toString(), "date")
df.show()


Exception in thread "main" org.apache.spark.sql.AnalysisException: **Reference 'name' is ambiguous, could be: name, name.;**
    at org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.resolve(LogicalPlan.scala:213)
    at org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.resolveChildren(LogicalPlan.scala:97)
    at org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveReferences$$anonfun$37.apply(Analyzer.scala:826)
    at org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveReferences$$anonfun$37.apply(Analyzer.scala:828)

1 Ответ

3 голосов
/ 04 апреля 2019

Проблема в конвертации toString(), которая, похоже, теряет информацию таблицы.В общем, toString для целей отладки.Это должно работать

val llist = Seq(("bob", "2015-01-13", 4), ("alice", "2015-04-23",10))
val left = llist.toDF("name","date","duration")//.registerTempTable("table1")
val right = Seq(("alice", 100),("bob", 23)).toDF("name","upload")//.registerTempTable("table2")
val df = left.join(right, left.col("name") === right.col("name"),
    "LeftOuter").filter("duration > 5")
    .select(left.col("name"), $"date")
df.show()

Вывод:

+-----+----------+
| name|      date|
+-----+----------+
|alice|2015-04-23|
+-----+----------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...