Ошибка склеивания AWS при преобразовании фрейма данных в динамический фрейм - PullRequest
1 голос
/ 17 июня 2019

Вот мой код, в котором я пытаюсь создать новый фрейм данных из набора результатов моего левого объединения на 2 других фреймах данных, а затем пытаюсь преобразовать его в динамический фрейм.

dfs = sqlContext.read.format(SNOWFLAKE_SOURCE_NAME).options(**sfOptions).option("query", "SELECT hashkey as hash From randomtable").load()

#Source
datasource0 = glueContext.create_dynamic_frame.from_catalog(database = "test", table_name = "randomtable", transformation_ctx = "datasource0")

#add hash value
df = datasource0.toDF()
df.cache()
df = df.withColumn("hashkey", sha2(concat_ws("||", *df.columns), 256))

#drop dupes
df1 = df.dropDuplicates(subset=['hashkey'])

#read incremental data
inc = df1.join(dfs, df1["hashkey"] == dfs["hash"], how='left').filter(col('hash').isNull())

#convert it back to glue context
datasource1 = DynamicFrame.fromDF(inc, glueContext, "datasource1")

Вот ошибка, которую я получаю при попытке преобразовать фрейм данных в динамический фрейм.

datasource1 = DynamicFrame.fromDF (inc, glueContext, "datasource1") File "/ mnt / yarn / usercache /root / appcache / application_1560272525947_0002 / container_1560272525947_0002_01_000001 / PyGlue.zip / awsglue / dynamicframe.py ",

, строка 150, из файла DF" /mnt/yarn/usercache/root/appcache_25_25_25_25_25_25_25_25_25_148_1000_25_25_25_25_1000.4-src.zip / py4j / java_gateway.py ", строка 1133, в вызов Файл" /mnt/yarn/usercache/root/appcache/application_1560272525947_0002/container_1560272525947_0002_01_000001/pys/pys.pysutils.py ", строка 63, в файле deco" / mnt / yarn / usercache / root / appcache / application_1560272525947_0002 / container_1560272525947_0002_01_000001 / py4j-0.10.4-src.zip/py4j/protocol.py ", строка 319, в get_return_value py4j.protocol.Py4JJavaError: Произошла ошибка при вызове z: com.amazonaws.services.glue.DynamicFrame.apply.: java.lang.NoSuchMethodError: org.apache.spark.sql.catalyst.expressions.AttributeReference. (Ljava / lang / String; Lorg / apache / spark / sql / types / DataType; ZLorg / apache / spark / sql / types /Метаданные; Lorg / apache / spark / sql / катализатор / выражения / ExprId; Lscala / collection / Seq;) V в net.snowflake.spark.snowflake.pushdowns.querygeneration.QueryHelper $$ anonfun $ 8.apply (QueryHelper.scala: 66) at net.snowflake.spark.snowflake.pushdowns.querygeneration.QueryHelper $$ anonfun $ 8.apply (QueryHelper.scala: 65) на scala.collection.TraversableLike $$ anonfun $ map $ 1.apply (TraversableLike.scala: 234) по адресуscala.collection.TraversableLike $$ anonfun $ map $ 1.apply (TraversableLike.scala: 234) в scala.collection.immutable.List.foreach (List.scala: 381) в scala.collection.TraversableLike $ class.map (TraversableLike.scala: 234) на scala.collection.immutable.List.map (List.scala: 285) на net.snowflake.spark.snowflake.pushdowns.querygeneration.QueryHelper. (QueryHelper.scala: 64) на net.snowflake.spark.snowflake.pushdowns.querygeneration.SourceQuery. (SnowflakeQuery.scala: 100) по адресу net.snowflake.spark.snowflake.pushdowns.querygeneration.QueryBuilder.net.spark.snowflake.pushdowns.querygeneration.QueryBuilder.liftedTree1 $ 1 (QueryBuilder.scala: 63) по адресу net.snowflake.spark.snowflake.pushdowns.querygeneration.QueryBuilder.treeRoot $ lzycompute (QueryBnowkesc).spark.snowflake.pushdowns.querygeneration.QueryBuilder.treeRoot (QueryBuilder.scala: 60) по адресу net.snowflake.spark.snowflake.pushdowns.querygeneration.QueryBuilder.tryBuild $ lzycompute (QueryBuilder.spark. at 34):снежинка..SnowflakeStrategy.buildQueryRDD (SnowflakeStrategy.scala: 42) в net.snowflake.spark.snowflake.pushdowns.SnowflakeStrategy.apply (SnowflakeStrategy.scala: 24) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 1.apply (QueryPlanner.scala: 62) в org.apache.spark.sql.катализатор.planning.QueryPlanner $$ anonfun $ 1.apply (QueryPlanner.scala: 62) в scala.collection.Iterator $$ anon $ 12.nextCur (Iterator.scala: 434) в scala.collection.Iterator $$ anon $ 12.hasNext (Iterator.scala: 440) в scala.collection.Iterator $$ anon $ 12.hasNext (Iterator.scala: 439) в org.apache.spark.sql.catalyst.planning.QueryPlanner.plan (QueryPlanner.scala: 92)в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2 $$ anonfun $ apply $ 2.apply (QueryPlanner.scala: 77) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun$ 2 $$ anonfun $ apply $ 2.apply (QueryPlanner.scala: 74) в scala.collection.TraversableOnce $$ anonfun $ foldLeft $ 1.apply (TraversableOnce.scala: 157) в scala.collection.TraversableOnce $$ anonfun $ foldLeft $ 1.применить (TraversableOnce.scala: 157) в scala.collection.Iterator $ class.foreach (Iterator.scala: 893) в scala.collection.AbstractIterator.foreach (Iterator.scala: 1336) в scala.collection.TraversableOnce $ class.foldLeft(TraversableOnce.scala: 157) в scala.collection.AbstractIterator.foldLeft (Iterator.scala: 1336) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2.apply (QueryPlanner.scala: 74) вorg.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2.apply (QueryPlanner.scala: 66) в scala.collection.Iterator $$ anon $ 12.nextCur (Iterator.scala: 434) в scala.collection.Итератор $$ anon $ 12.hasNext (Iterator.scala: 440) вorg.apache.spark.sql.catalyst.planning.QueryPlanner.plan (QueryPlanner.scala: 92) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2 $$ anonfun $ применить $ 2.apply (QueryPlanner.scala: 77) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2 $$ anonfun $ apply $ 2.apply (QueryPlanner.scala: 74) в scala.collection.TraversableOnce $$ anonfun $ foldLeft $ 1.apply (TraversableOnce.scala: 157) в scala.collection.TraversableOnce $$ anonfun $ foldLeft $ 1.apply (TraversableOnce.scala: 157) в scala.collection.Iterator $ class.foreach (Iterator.scala: 893) в scala.collection.AbstractIterator.foreach (Iterator.scala: 1336) в scala.collection.TraversableOnce $ class.foldLeft (TraversableOnce.scala: 157) в scala.collection.AbstractIterator.foldLeft (Iterator.scala: 1336) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2.apply (QueryPlanner.scala: 74) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2.apply (QueryPlanner.scala: 66) в scala.collection.Iterator $$ Анон $ 12.nextCur (Iterator.scala: 434) в scala.collection.Iterator $$ anon $ 12.hasNext (Iterator.scala: 440) в org.apache.spark.sql.catalyst.planning.QueryPlanner.plan (QueryPlanner.scala: 92) в организации.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2 $$ anonfun $ apply $ 2.apply (QueryPlanner.scala: 77) в org.apache.spark.sql.catalyst.planning.QueryPlanner $$ anonfun $ 2 $$ anonfun $ apply $ 2.apply (QueryPlanner.scala: 74) по адресу scala.collection.TraversableOnce $$ anonfun $ foldLeft $ 1.apply (TraversableOnce.scala: 157)

Любая помощь очень ценится.

...