Snowpark Migration Accelerator: Problemcodes für Spark - Scala¶
SPRKSCL1126¶
Meldung: org.apache.spark.sql.functions.covar_pop verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der Funktion org.apache.spark.sql.functions.covar_pop feststellt, für die es eine Problemumgehung gibt.
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.covar_pop
-Funktion, die zunächst mit Spaltennamen als Argumenten und dann mit Spaltenobjekten verwendet wird.
val df = Seq(
(10.0, 100.0),
(20.0, 150.0),
(30.0, 200.0),
(40.0, 250.0),
(50.0, 300.0)
).toDF("column1", "column2")
val result1 = df.select(covar_pop("column1", "column2").as("covariance_pop"))
val result2 = df.select(covar_pop(col("column1"), col("column2")).as("covariance_pop"))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1126
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(
(10.0, 100.0),
(20.0, 150.0),
(30.0, 200.0),
(40.0, 250.0),
(50.0, 300.0)
).toDF("column1", "column2")
/*EWI: SPRKSCL1126 => org.apache.spark.sql.functions.covar_pop has a workaround, see documentation for more info*/
val result1 = df.select(covar_pop("column1", "column2").as("covariance_pop"))
/*EWI: SPRKSCL1126 => org.apache.spark.sql.functions.covar_pop has a workaround, see documentation for more info*/
val result2 = df.select(covar_pop(col("column1"), col("column2")).as("covariance_pop"))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente covar_pop-Funktion, die zwei Spaltenobjekte als Argumente erhält. Aus diesem Grund wird die Spark-Überladung, die zwei Spaltenobjekte als Argumente erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die zwei Zeichenfolgenargumente empfängt, können Sie die Zeichenfolgen in Spaltenobjekte umwandeln, indem Sie die Funktion com.snowflake.snowpark.functions.col als Problemumgehung verwenden.
val df = Seq(
(10.0, 100.0),
(20.0, 150.0),
(30.0, 200.0),
(40.0, 250.0),
(50.0, 300.0)
).toDF("column1", "column2")
val result1 = df.select(covar_pop(col("column1"), col("column2")).as("covariance_pop"))
val result2 = df.select(covar_pop(col("column1"), col("column2")).as("covariance_pop"))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1112¶
Meldung: _ spark element _ wird nicht unterstützt
Kategorie: Konvertierungsfehler
Beschreibung¶
Dieses Problem tritt auf, wenn SMA die Verwendung eines Spark-Elements erkennt, das von Snowpark nicht unterstützt wird und für das es keinen eigenen Fehlercode gibt. Dies ist ein allgemeiner Fehlercode, der von SMA für jedes nicht unterstützte Spark-Element verwendet wird.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für ein Spark-Element, das von Snowpark nicht unterstützt wird und daher diese EWI erzeugt.
val df = session.range(10)
val result = df.isLocal
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1112
hinzu, um Sie darauf hinzuweisen, dass dieses Element von Snowpark nicht unterstützt wird.
val df = session.range(10)
/*EWI: SPRKSCL1112 => org.apache.spark.sql.Dataset.isLocal is not supported*/
val result = df.isLocal
Empfohlene Korrektur
Da es sich um einen allgemeinen Fehlercode handelt, der für eine Reihe von nicht unterstützten Funktionen gilt, gibt es keine einzelne und spezifische Korrektur. Die geeignete Aktion hängt von dem jeweiligen Element ab, das verwendet wird.
Bitte beachten Sie, dass, auch wenn das Element nicht unterstützt wird, dies nicht unbedingt bedeutet, dass keine Lösung oder Problemumgehung gefunden werden kann. Es bedeutet nur, dass die SMA selbst keine Lösung finden kann.
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1143¶
Meldung: Beim Laden der Symboltabelle ist ein Fehler aufgetreten
Kategorie: Konvertierungsfehler
Beschreibung¶
Dieses Problem tritt auf, wenn ein Fehler beim Laden der Symbole in der SMA-Symboltabelle auftritt. Die Symboltabelle ist Teil der zugrunde liegenden Architektur von SMA und ermöglicht komplexere Konvertierungen.
Zusätzliche Empfehlungen¶
Es ist unwahrscheinlich, dass es sich um einen Fehler im Quellcode selbst handelt, sondern eher um einen Fehler bei der Verarbeitung des Quellcodes durch SMA. Die beste Lösung wäre, ein Problem in der SMA zu melden.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1153¶
Warnung
Dieser Problemcode gilt als veraltet bereits seit [Spark Conversion Core Version 4.3.2](../../../general/release-notes/README. md#spark-conversion-core-version-432)
Meldung: org.apache.spark.sql.functions.max verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.max-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.max
-Funktion, die zunächst mit einem Spaltennamen als Argument und anschließend mit einem Spaltenobjekt verwendet wird.
val df = Seq(10, 12, 20, 15, 18).toDF("value")
val result1 = df.select(max("value"))
val result2 = df.select(max(col("value")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1153
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(10, 12, 20, 15, 18).toDF("value")
/*EWI: SPRKSCL1153 => org.apache.spark.sql.functions.max has a workaround, see documentation for more info*/
val result1 = df.select(max("value"))
/*EWI: SPRKSCL1153 => org.apache.spark.sql.functions.max has a workaround, see documentation for more info*/
val result2 = df.select(max(col("value")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente max-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(10, 12, 20, 15, 18).toDF("value")
val result1 = df.select(max(col("value")))
val result2 = df.select(max(col("value")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1102¶
Dieser Problemcode gilt als veraltet bereits seit Spark Conversion Core 2.3.22
Meldung: Explode wird nicht unterstützt
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.explode-Funktion feststellt, die von Snowpark nicht unterstützt wird.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.functions.explode
-Funktion, mit der Sie die konsolidierten Informationen der Array-Felder des Datensatzes erhalten.
val explodeData = Seq(
Row("Cat", Array("Gato","Chat")),
Row("Dog", Array("Perro","Chien")),
Row("Bird", Array("Ave","Oiseau"))
)
val explodeSchema = StructType(
List(
StructField("Animal", StringType),
StructField("Translation", ArrayType(StringType))
)
)
val rddExplode = session.sparkContext.parallelize(explodeData)
val dfExplode = session.createDataFrame(rddExplode, explodeSchema)
dfExplode.select(explode(dfExplode("Translation").alias("exploded")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1102
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht unterstützt wird.
val explodeData = Seq(
Row("Cat", Array("Gato","Chat")),
Row("Dog", Array("Perro","Chien")),
Row("Bird", Array("Ave","Oiseau"))
)
val explodeSchema = StructType(
List(
StructField("Animal", StringType),
StructField("Translation", ArrayType(StringType))
)
)
val rddExplode = session.sparkContext.parallelize(explodeData)
val dfExplode = session.createDataFrame(rddExplode, explodeSchema)
/*EWI: SPRKSCL1102 => Explode is not supported */
dfExplode.select(explode(dfExplode("Translation").alias("exploded")))
Empfohlene Korrektur
Da Explode von Snowpark nicht unterstützt wird, kann die flatten-Funktion als Ersatz verwendet werden.
Die folgende Korrektur vereinfacht den dfExplode-Datenframe und führt dann die Abfrage durch, um das Ergebnis in Spark zu replizieren.
val explodeData = Seq(
Row("Cat", Array("Gato","Chat")),
Row("Dog", Array("Perro","Chien")),
Row("Bird", Array("Ave","Oiseau"))
)
val explodeSchema = StructType(
List(
StructField("Animal", StringType),
StructField("Translation", ArrayType(StringType))
)
)
val rddExplode = session.sparkContext.parallelize(explodeData)
val dfExplode = session.createDataFrame(rddExplode, explodeSchema)
var dfFlatten = dfExplode.flatten(col("Translation")).alias("exploded")
.select(col("exploded.value").alias("Translation"))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1136¶
Warnung
Dieser Problemcode ist veraltet seit [Spark Conversion Core 4.3.2](../../../general/release-notes/README. md#spark-conversion-core-version-432)
Meldung: org.apache.spark.sql.functions.min verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.min-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.min
-Funktion, die zunächst mit einem Spaltennamen als Argument und anschließend mit einem Spaltenobjekt verwendet wird.
val df = Seq(1, 3, 10, 1, 3).toDF("value")
val result1 = df.select(min("value"))
val result2 = df.select(min(col("value")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1136
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(1, 3, 10, 1, 3).toDF("value")
/*EWI: SPRKSCL1136 => org.apache.spark.sql.functions.min has a workaround, see documentation for more info*/
val result1 = df.select(min("value"))
/*EWI: SPRKSCL1136 => org.apache.spark.sql.functions.min has a workaround, see documentation for more info*/
val result2 = df.select(min(col("value")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente min-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung mit einem Zeichenfolgeargument können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(1, 3, 10, 1, 3).toDF("value")
val result1 = df.select(min(col("value")))
val result2 = df.select(min(col("value")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1167¶
Meldung: Projektdatei im Eingabeordner nicht gefunden
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA feststellt, dass der Eingabeordner keine Projektkonfigurationsdatei enthält. Die von SMA unterstützten Projektkonfigurationsdateien sind:
build.sbt
build.gradle
pom.xml
Zusätzliche Empfehlungen¶
Fügen Sie eine Konfigurationsprojektdatei in den Eingabeordner ein.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1147¶
Meldung: org.apache.spark.sql.functions.tanh verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.tanh-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.tanh
-Funktion, die zunächst mit einem Spaltennamen als Argument und dann mit einem Spaltenobjekt verwendet wird.
val df = Seq(-1.0, 0.5, 1.0, 2.0).toDF("value")
val result1 = df.withColumn("tanh_value", tanh("value"))
val result2 = df.withColumn("tanh_value", tanh(col("value")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1147
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(-1.0, 0.5, 1.0, 2.0).toDF("value")
/*EWI: SPRKSCL1147 => org.apache.spark.sql.functions.tanh has a workaround, see documentation for more info*/
val result1 = df.withColumn("tanh_value", tanh("value"))
/*EWI: SPRKSCL1147 => org.apache.spark.sql.functions.tanh has a workaround, see documentation for more info*/
val result2 = df.withColumn("tanh_value", tanh(col("value")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente tanh-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(-1.0, 0.5, 1.0, 2.0).toDF("value")
val result1 = df.withColumn("tanh_value", tanh(col("value")))
val result2 = df.withColumn("tanh_value", tanh(col("value")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1116¶
Warnung
Dieser Problemcode gilt als veraltet bereits seit Spark Conversion Core Version 2.40.1
Meldung: org.apache.spark.sql.functions.split verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der Funktion org.apache.spark.sql.functions.split feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.functions.split
-Funktion, die diese EWI erzeugt.
val df = Seq("apple,banana,orange", "grape,lemon,lime", "cherry,blueberry,strawberry").toDF("values")
val result1 = df.withColumn("split_values", split(col("values"), ","))
val result2 = df.withColumn("split_values", split(col("values"), ",", 0))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1116
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq("apple,banana,orange", "grape,lemon,lime", "cherry,blueberry,strawberry").toDF("values")
/*EWI: SPRKSCL1116 => org.apache.spark.sql.functions.split has a workaround, see documentation for more info*/
val result1 = df.withColumn("split_values", split(col("values"), ","))
/*EWI: SPRKSCL1116 => org.apache.spark.sql.functions.split has a workaround, see documentation for more info*/
val result2 = df.withColumn("split_values", split(col("values"), ",", 0))
Empfohlene Korrektur
Bei der Spark-Überladung, die zwei Argumente empfängt, können Sie das zweite Argument in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.lit-Funktion als Problemumgehung verwenden.
Die Überladung, die drei Argumente empfängt, wird von Snowpark noch nicht unterstützt und es gibt keine Problemumgehung.
val df = Seq("apple,banana,orange", "grape,lemon,lime", "cherry,blueberry,strawberry").toDF("values")
val result1 = df.withColumn("split_values", split(col("values"), lit(",")))
val result2 = df.withColumn("split_values", split(col("values"), ",", 0)) // This overload is not supported yet
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1122¶
Meldung: org.apache.spark.sql.functions.corr verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.corr-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.corr
-Funktion, die zunächst mit Spaltennamen als Argumenten und anschließend mit Spaltenobjekten verwendet wird.
val df = Seq(
(10.0, 20.0),
(20.0, 40.0),
(30.0, 60.0)
).toDF("col1", "col2")
val result1 = df.select(corr("col1", "col2"))
val result2 = df.select(corr(col("col1"), col("col2")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1122
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(
(10.0, 20.0),
(20.0, 40.0),
(30.0, 60.0)
).toDF("col1", "col2")
/*EWI: SPRKSCL1122 => org.apache.spark.sql.functions.corr has a workaround, see documentation for more info*/
val result1 = df.select(corr("col1", "col2"))
/*EWI: SPRKSCL1122 => org.apache.spark.sql.functions.corr has a workaround, see documentation for more info*/
val result2 = df.select(corr(col("col1"), col("col2")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente corr-Funktion, die zwei Spaltenobjekte als Argumente erhält. Aus diesem Grund wird die Spark-Überladung, die Spaltenobjekte als Argumente erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die zwei Zeichenfolgenargumente empfängt, können Sie die Zeichenfolgen in Spaltenobjekte umwandeln, indem Sie die Funktion com.snowflake.snowpark.functions.col als Problemumgehung verwenden.
val df = Seq(
(10.0, 20.0),
(20.0, 40.0),
(30.0, 60.0)
).toDF("col1", "col2")
val result1 = df.select(corr(col("col1"), col("col2")))
val result2 = df.select(corr(col("col1"), col("col2")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1173¶
Meldung: SQL eingebetteter Code kann nicht verarbeitet werden.
Kategorie: Warnung.
Beschreibung¶
Dieses Problem tritt auf, wenn SMA einen SQL-eingebetteten Code erkennt, der nicht verarbeitet werden kann. Dann kann der SQL-eingebettete Code nicht in Snowflake konvertiert werden.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für einen SQL-eingebetteten Code, der nicht verarbeitet werden kann.
spark.sql("CREATE VIEW IF EXISTS My View" + "AS Select * From my Table WHERE date < current_date()")
Ausgabe
Der SMA fügt dem Ausgabecode das EWI SPRKSCL1173
hinzu, um Sie darauf hinzuweisen, dass der SQL-eingebettete Code nicht verarbeitet werden kann.
/*EWI: SPRKSCL1173 => SQL embedded code cannot be processed.*/
spark.sql("CREATE VIEW IF EXISTS My View" + "AS Select * From my Table WHERE date < current_date()")
Empfohlene Korrektur
Stellen Sie sicher, dass der SQL-eingebettete Code eine Zeichenfolge ohne Interpolationen, Variablen oder Zeichenfolge-Verkettungen ist.
Zusätzliche Empfehlungen¶
Weitere Informationen über SQL-eingebettet finden Sie hier.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1163¶
Meldung: Das Element ist kein Literal und kann nicht ausgewertet werden.
Kategorie: Konvertierungsfehler.
Beschreibung¶
Dieses Problem tritt auf, wenn das aktuelle Verarbeitungselement kein Literal ist, dann kann es nicht von SMA ausgewertet werden.
Szenario¶
Eingabe
Nachfolgend ein Beispiel, wenn das zu verarbeitende Element kein Literal ist und nicht von SMA ausgewertet werden kann.
val format_type = "csv"
spark.read.format(format_type).load(path)
Ausgabe
Der SMA fügt dem Ausgabecode das EWI SPRKSCL1163
hinzu, um Sie darauf hinzuweisen, dass der format_type
-Parameter kein Literal ist und von SMA nicht ausgewertet werden kann.
/*EWI: SPRKSCL1163 => format_type is not a literal and can't be evaluated*/
val format_type = "csv"
spark.read.format(format_type).load(path)
Empfohlene Korrektur
Vergewissern Sie sich, dass der Wert der Variablen ein gültiger Wert ist, um unerwartete Verhaltensweisen zu vermeiden.
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1132¶
Meldung: org.apache.spark.sql.functions.grouping_id verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.grouping_id-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.grouping_id
-Funktion, die zunächst mit mehreren Spaltennamen als Argumente und dann mit Spaltenobjekten verwendet wird.
val df = Seq(
("Store1", "Product1", 100),
("Store1", "Product2", 150),
("Store2", "Product1", 200),
("Store2", "Product2", 250)
).toDF("store", "product", "amount")
val result1 = df.cube("store", "product").agg(sum("amount"), grouping_id("store", "product"))
val result2 = df.cube("store", "product").agg(sum("amount"), grouping_id(col("store"), col("product")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1132
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(
("Store1", "Product1", 100),
("Store1", "Product2", 150),
("Store2", "Product1", 200),
("Store2", "Product2", 250)
).toDF("store", "product", "amount")
/*EWI: SPRKSCL1132 => org.apache.spark.sql.functions.grouping_id has a workaround, see documentation for more info*/
val result1 = df.cube("store", "product").agg(sum("amount"), grouping_id("store", "product"))
/*EWI: SPRKSCL1132 => org.apache.spark.sql.functions.grouping_id has a workaround, see documentation for more info*/
val result2 = df.cube("store", "product").agg(sum("amount"), grouping_id(col("store"), col("product")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente grouping_id-Funktion, die mehrere Spaltenobjekte als Argumente erhält. Aus diesem Grund wird die Spark-Überladung, die mehrere Spaltenobjekte als Argumente erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die mehrere Zeichenfolgeargumente empfängt, können Sie die Zeichenfolgen in Spaltenobjekte umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(
("Store1", "Product1", 100),
("Store1", "Product2", 150),
("Store2", "Product1", 200),
("Store2", "Product2", 250)
).toDF("store", "product", "amount")
val result1 = df.cube("store", "product").agg(sum("amount"), grouping_id(col("store"), col("product")))
val result2 = df.cube("store", "product").agg(sum("amount"), grouping_id(col("store"), col("product")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1106¶
Warnung
Dieser Problemcode ist jetzt veraltet
Meldung: Die Writer-Option wird nicht unterstützt.
Kategorie: Konvertierungsfehler.
Beschreibung¶
Dieses Problem tritt auf, wenn das Tool in der Writer-Anweisung die Verwendung einer von Snowpark nicht unterstützten Option feststellt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.DataFrameWriter.option, mit der Sie Optionen zu einer Writer-Anweisung hinzufügen können.
df.write.format("net.snowflake.spark.snowflake").option("dbtable", tablename)
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1106
hinzu, um Sie darauf hinzuweisen, dass die Optionsmethode von Snowpark nicht unterstützt wird.
df.write.saveAsTable(tablename)
/*EWI: SPRKSCL1106 => Writer option is not supported .option("dbtable", tablename)*/
Empfohlene Korrektur
Es gibt keine empfohlene Korrektur für dieses Szenario
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1157¶
Meldung: org.apache.spark.sql.functions.kurtosis verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.kurtosis-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.kurtosis
-Funktion, die diese EWI erzeugt. In diesem Beispiel wird die kurtosis
-Funktion verwendet, um die Kurtosis (Wölbung) der ausgewählten Spalte zu berechnen.
val df = Seq("1", "2", "3").toDF("elements")
val result1 = kurtosis(col("elements"))
val result2 = kurtosis("elements")
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1157
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq("1", "2", "3").toDF("elements")
/*EWI: SPRKSCL1157 => org.apache.spark.sql.functions.kurtosis has a workaround, see documentation for more info*/
val result1 = kurtosis(col("elements"))
/*EWI: SPRKSCL1157 => org.apache.spark.sql.functions.kurtosis has a workaround, see documentation for more info*/
val result2 = kurtosis("elements")
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente Funktion kurtosis-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq("1", "2", "3").toDF("elements")
val result1 = kurtosis(col("elements"))
val result2 = kurtosis(col("elements"))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1146¶
Meldung: org.apache.spark.sql.functions.tan verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.tan-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.tan
-Funktion, die zunächst mit einem Spaltennamen als Argument und anschließend mit einem Spaltenobjekt verwendet wird.
val df = Seq(math.Pi / 4, math.Pi / 3, math.Pi / 6).toDF("angle")
val result1 = df.withColumn("tan_value", tan("angle"))
val result2 = df.withColumn("tan_value", tan(col("angle")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1146
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(math.Pi / 4, math.Pi / 3, math.Pi / 6).toDF("angle")
/*EWI: SPRKSCL1146 => org.apache.spark.sql.functions.tan has a workaround, see documentation for more info*/
val result1 = df.withColumn("tan_value", tan("angle"))
/*EWI: SPRKSCL1146 => org.apache.spark.sql.functions.tan has a workaround, see documentation for more info*/
val result2 = df.withColumn("tan_value", tan(col("angle")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente tan-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(math.Pi / 4, math.Pi / 3, math.Pi / 6).toDF("angle")
val result1 = df.withColumn("tan_value", tan(col("angle")))
val result2 = df.withColumn("tan_value", tan(col("angle")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1117¶
Warnung
Dieser Problemcode ist veraltet seit Spark Conversion Core 2.40.1
Meldung: org.apache.spark.sql.functions.translate verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.translate-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.functions.translate
-Funktion, die diese EWI erzeugt. In diesem Beispiel wird die translate
-Funktion verwendet, um die Zeichen ‚a‘, ‚e‘ und ‚o‘ in jedem Wort durch ‚1‘, ‚2‘ bzw. ‚3‘ zu ersetzen.
val df = Seq("hello", "world", "scala").toDF("word")
val result = df.withColumn("translated_word", translate(col("word"), "aeo", "123"))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1117
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq("hello", "world", "scala").toDF("word")
/*EWI: SPRKSCL1117 => org.apache.spark.sql.functions.translate has a workaround, see documentation for more info*/
val result = df.withColumn("translated_word", translate(col("word"), "aeo", "123"))
Empfohlene Korrektur
Als Problemumgehung können Sie das zweite und dritte Argument mit der com.snowflake.snowpark.functions.lit-Funktion in ein Spaltenobjekt umwandeln.
val df = Seq("hello", "world", "scala").toDF("word")
val result = df.withColumn("translated_word", translate(col("word"), lit("aeo"), lit("123")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1123¶
Meldung: org.apache.spark.sql.functions.cos verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.cos-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.cos
-Funktion, die zunächst mit einem Spaltennamen als Argument und anschließend mit einem Spaltenobjekt verwendet wird.
val df = Seq(0.0, Math.PI / 4, Math.PI / 2, Math.PI).toDF("angle_radians")
val result1 = df.withColumn("cosine_value", cos("angle_radians"))
val result2 = df.withColumn("cosine_value", cos(col("angle_radians")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1123
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(0.0, Math.PI / 4, Math.PI / 2, Math.PI).toDF("angle_radians")
/*EWI: SPRKSCL1123 => org.apache.spark.sql.functions.cos has a workaround, see documentation for more info*/
val result1 = df.withColumn("cosine_value", cos("angle_radians"))
/*EWI: SPRKSCL1123 => org.apache.spark.sql.functions.cos has a workaround, see documentation for more info*/
val result2 = df.withColumn("cosine_value", cos(col("angle_radians")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente cos-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(0.0, Math.PI / 4, Math.PI / 2, Math.PI).toDF("angle_radians")
val result1 = df.withColumn("cosine_value", cos(col("angle_radians")))
val result2 = df.withColumn("cosine_value", cos(col("angle_radians")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1172¶
Meldung: Snowpark unterstützt nicht StructFiled mit Metadaten-Parameter.
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA feststellt, dass org.apache.spark.sql.types.StructField.apply mit org.apache.spark.sql.types.Metadata als Parameter. Das liegt daran, dass Snowpark den Metadatenparameter nicht unterstützt.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.types.StructField.apply
-Funktion, die diese EWI erzeugt. In diesem Beispiel wird die apply
-Funktion verwendet, um eine Instanz von StructField zu erzeugen.
val result = StructField("f1", StringType(), True, metadata)
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1172
hinzu, um Sie darauf hinzuweisen, dass der Metadatenparameter von Snowflake nicht unterstützt wird.
/*EWI: SPRKSCL1172 => Snowpark does not support StructFiled with metadata parameter.*/
val result = StructField("f1", StringType(), True, metadata)
Empfohlene Korrektur
Snowpark hat eine äquivalente com.snowflake.snowpark.types.StructField. apply-Funktion, die drei Parameter erhält. Als Problemumgehung können Sie dann versuchen, das Metadatenargument zu entfernen.
val result = StructField("f1", StringType(), True, metadata)
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1162¶
Bemerkung
Dieser Problemcode ist jetzt veraltet
Meldung: Beim Extrahieren der dbc-Dateien ist ein Fehler aufgetreten.
Kategorie: Warnung.
Beschreibung¶
Dieses Problem tritt auf, wenn eine dbc-Datei nicht extrahiert werden kann. Diese Warnung könnte durch einen oder mehrere der folgenden Gründe verursacht werden: Zu schwer, unzugänglich, schreibgeschützt, usw.
Zusätzliche Empfehlungen¶
Als Problemumgehung können Sie die Größe der Datei überprüfen, wenn sie zu groß ist, um verarbeitet zu werden. Analysieren Sie auch, ob das Tool darauf zugreifen kann, um Zugriffsprobleme zu vermeiden.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1133¶
Meldung: org.apache.spark.sql.functions.least verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.least-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.least
-Funktion, die zunächst mit mehreren Spaltennamen als Argumente und dann mit Spaltenobjekten verwendet wird.
val df = Seq((10, 20, 5), (15, 25, 30), (7, 14, 3)).toDF("value1", "value2", "value3")
val result1 = df.withColumn("least", least("value1", "value2", "value3"))
val result2 = df.withColumn("least", least(col("value1"), col("value2"), col("value3")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1133
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq((10, 20, 5), (15, 25, 30), (7, 14, 3)).toDF("value1", "value2", "value3")
/*EWI: SPRKSCL1133 => org.apache.spark.sql.functions.least has a workaround, see documentation for more info*/
val result1 = df.withColumn("least", least("value1", "value2", "value3"))
/*EWI: SPRKSCL1133 => org.apache.spark.sql.functions.least has a workaround, see documentation for more info*/
val result2 = df.withColumn("least", least(col("value1"), col("value2"), col("value3")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente least-Funktion, die mehrere Spaltenobjekte als Argumente erhält. Aus diesem Grund wird die Spark-Überladung, die mehrere Spaltenobjekte als Argumente erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die mehrere Zeichenfolgeargumente empfängt, können Sie die Zeichenfolgen in Spaltenobjekte umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq((10, 20, 5), (15, 25, 30), (7, 14, 3)).toDF("value1", "value2", "value3")
val result1 = df.withColumn("least", least(col("value1"), col("value2"), col("value3")))
val result2 = df.withColumn("least", least(col("value1"), col("value2"), col("value3")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1107¶
Warnung
Dieser Problemcode ist jetzt veraltet
Meldung: Writer-Speichern wird nicht unterstützt.
Kategorie: Konvertierungsfehler.
Beschreibung¶
Dieses Problem tritt auf, wenn das Tool in der Writer-Anweisung die Verwendung einer Writer-Speichermethode feststellt, die von Snowpark nicht unterstützt wird.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.DataFrameWriter.save, die zum Speichern des DataFrame-Inhalts verwendet wird.
df.write.format("net.snowflake.spark.snowflake").save()
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1107
hinzu, um Sie darauf hinzuweisen, dass die Speichermethode von Snowpark nicht unterstützt wird.
df.write.saveAsTable(tablename)
/*EWI: SPRKSCL1107 => Writer method is not supported .save()*/
Empfohlene Korrektur
Es gibt keine empfohlene Korrektur für dieses Szenario
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1156¶
Meldung: org.apache.spark.sql.functions.degrees verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.degrees–Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.degrees
-Funktion, die zunächst mit einem Spaltennamen als Argument und anschließend mit einem Spaltenobjekt verwendet wird.
val df = Seq(math.Pi, math.Pi / 2, math.Pi / 4, math.Pi / 6).toDF("radians")
val result1 = df.withColumn("degrees", degrees("radians"))
val result2 = df.withColumn("degrees", degrees(col("radians")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1156
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(math.Pi, math.Pi / 2, math.Pi / 4, math.Pi / 6).toDF("radians")
/*EWI: SPRKSCL1156 => org.apache.spark.sql.functions.degrees has a workaround, see documentation for more info*/
val result1 = df.withColumn("degrees", degrees("radians"))
/*EWI: SPRKSCL1156 => org.apache.spark.sql.functions.degrees has a workaround, see documentation for more info*/
val result2 = df.withColumn("degrees", degrees(col("radians")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente degrees-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(math.Pi, math.Pi / 2, math.Pi / 4, math.Pi / 6).toDF("radians")
val result1 = df.withColumn("degrees", degrees(col("radians")))
val result2 = df.withColumn("degrees", degrees(col("radians")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1127¶
Meldung: org.apache.spark.sql.functions.covar_samp verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.covar_samp-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.covar_samp
-Funktion, die zunächst mit Spaltennamen als Argumenten und dann mit Spaltenobjekten verwendet wird.
val df = Seq(
(10.0, 20.0),
(15.0, 25.0),
(20.0, 30.0),
(25.0, 35.0),
(30.0, 40.0)
).toDF("value1", "value2")
val result1 = df.select(covar_samp("value1", "value2").as("sample_covariance"))
val result2 = df.select(covar_samp(col("value1"), col("value2")).as("sample_covariance"))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1127
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(
(10.0, 20.0),
(15.0, 25.0),
(20.0, 30.0),
(25.0, 35.0),
(30.0, 40.0)
).toDF("value1", "value2")
/*EWI: SPRKSCL1127 => org.apache.spark.sql.functions.covar_samp has a workaround, see documentation for more info*/
val result1 = df.select(covar_samp("value1", "value2").as("sample_covariance"))
/*EWI: SPRKSCL1127 => org.apache.spark.sql.functions.covar_samp has a workaround, see documentation for more info*/
val result2 = df.select(covar_samp(col("value1"), col("value2")).as("sample_covariance"))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente covar_samp-Funktion, die zwei Spaltenobjekte als Argumente erhält. Aus diesem Grund wird die Spark-Überladung, die zwei Spaltenobjekte als Argumente erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die zwei Zeichenfolgenargumente empfängt, können Sie die Zeichenfolgen in Spaltenobjekte umwandeln, indem Sie die Funktion com.snowflake.snowpark.functions.col als Problemumgehung verwenden.
val df = Seq(
(10.0, 20.0),
(15.0, 25.0),
(20.0, 30.0),
(25.0, 35.0),
(30.0, 40.0)
).toDF("value1", "value2")
val result1 = df.select(covar_samp(col("value1"), col("value2")).as("sample_covariance"))
val result2 = df.select(covar_samp(col("value1"), col("value2")).as("sample_covariance"))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1113¶
Meldung: org.apache.spark.sql.functions.next_day verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.next_day-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die Funktion org.apache.spark.sql.functions.next_day
, die zunächst mit einer Zeichenfolge als zweitem Argument und dann mit einem Spaltenobjekt verwendet wird.
val df = Seq("2024-11-06", "2024-11-13", "2024-11-20").toDF("date")
val result1 = df.withColumn("next_monday", next_day(col("date"), "Mon"))
val result2 = df.withColumn("next_monday", next_day(col("date"), lit("Mon")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1113
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq("2024-11-06", "2024-11-13", "2024-11-20").toDF("date")
/*EWI: SPRKSCL1113 => org.apache.spark.sql.functions.next_day has a workaround, see documentation for more info*/
val result1 = df.withColumn("next_monday", next_day(col("date"), "Mon"))
/*EWI: SPRKSCL1113 => org.apache.spark.sql.functions.next_day has a workaround, see documentation for more info*/
val result2 = df.withColumn("next_monday", next_day(col("date"), lit("Mon")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente next_day-Funktion, die zwei Spaltenobjekte als Argumente erhält. Aus diesem Grund wird die Spark-Überladung, die zwei Spaltenobjekte als Argumente erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Spaltenobjekt und eine Zeichenkette empfängt, können Sie die Zeichenkette in ein Spaltenobjekt konvertieren, indem Sie die com.snowflake.snowpark.functions.lit-Funktion als Problemumgehung verwenden.
val df = Seq("2024-11-06", "2024-11-13", "2024-11-20").toDF("date")
val result1 = df.withColumn("next_monday", next_day(col("date"), lit("Mon")))
val result2 = df.withColumn("next_monday", next_day(col("date"), lit("Mon")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1002¶
Meldung: Dieser Codeabschnitt enthält eine Wiederherstellung aus _ statement _-Parsing-Fehlern
Kategorie: Parsing-Fehler.
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Anweisung im Code einer Datei entdeckt, die nicht korrekt gelesen oder verstanden werden kann. Dies wird als Parsing-Fehler bezeichnet. SMA kann diesen Parsing-Fehler beheben und die Analyse des Codes der Datei fortsetzen. In diesem Fall ist SMA in der Lage, den Code der Datei ohne Fehler zu verarbeiten.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für ungültigen Scala-Code, bei dem sich die SMA erholen kann.
Class myClass {
def function1() & = { 1 }
def function2() = { 2 }
def function3() = { 3 }
}
Ausgabe
SMA fügt dem Ausgabecode das EWI SPRKSCL1002
hinzu, um Sie darauf hinzuweisen, dass der Code der Datei Parsing-Fehler aufweist. SMA kann diesen Fehler jedoch beheben und die Analyse des Codes der Datei fortsetzen.
class myClass {
def function1();//EWI: SPRKSCL1002 => Unexpected end of declaration. Failed token: '&' @(3,21).
& = { 1 }
def function2() = { 2 }
def function3() = { 3 }
}
Empfohlene Korrektur
Da die Meldung den Fehler in der Anweisung lokalisiert, können Sie versuchen, die ungültige Syntax zu identifizieren und sie zu entfernen oder die Anweisung auszukommentieren, um den Parsing-Fehler zu vermeiden.
Class myClass {
def function1() = { 1 }
def function2() = { 2 }
def function3() = { 3 }
}
Class myClass {
// def function1() & = { 1 }
def function2() = { 2 }
def function3() = { 3 }
}
Zusätzliche Empfehlungen¶
Prüfen Sie, ob der Code der Datei ein gültiger Scala-Code ist.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1142¶
Meldung: _ spark element _ ist nicht definiert
Kategorie: Konvertierungsfehler
Beschreibung¶
Dieses Problem tritt auf, wenn SMA keinen geeigneten Zuordnungsstatus für das angegebene Element ermitteln konnte. Das bedeutet, dass SMA noch nicht weiß, ob dieses Element von Snowpark unterstützt wird oder nicht. Bitte beachten Sie, dass dies ein allgemeiner Fehlercode ist, der von SMA für jedes nicht definierte Element verwendet wird.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für eine Funktion, für die SMA keinen geeigneten Zuordnungsstatus ermitteln konnte und daher diese EWI generierte. In diesem Fall sollten Sie davon ausgehen, dass notDefinedFunction()
eine gültige Spark-Funktion ist und der Code ausgeführt wird.
val df = session.range(10)
val result = df.notDefinedFunction()
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1142
hinzu, um Sie darauf hinzuweisen, dass dieses Element nicht definiert ist.
val df = session.range(10)
/*EWI: SPRKSCL1142 => org.apache.spark.sql.DataFrame.notDefinedFunction is not defined*/
val result = df.notDefinedFunction()
Empfohlene Korrektur
Um zu versuchen, das Problem zu identifizieren, können Sie die folgenden Überprüfungen durchführen:
Prüfen Sie, ob es sich um ein gültiges Spark-Element handelt.
Prüfen Sie, ob das Element die richtige Syntax hat und richtig geschrieben ist.
Prüfen Sie, ob Sie eine Spark-Version verwenden, die von SMA unterstützt wird.
Wenn es sich um ein gültiges Spark-Element handelt, melden Sie bitte über die Option Ein Problem melden der SMA, dass bei diesem Element ein Konvertierungsfehler aufgetreten ist, und fügen Sie alle zusätzlichen Informationen hinzu, die Sie für hilfreich halten.
Bitte beachten Sie, dass, wenn ein Element nicht auf SMA definiert ist, dies nicht unbedingt bedeutet, dass es von Snowpark nicht unterstützt wird. Sie sollten in der Snowpark-Dokumentation nachsehen, ob es ein äquivalentes Element gibt.
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1152¶
Meldung: org.apache.spark.sql.functions.variance verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.variance-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.variance
-Funktion, die zunächst mit einem Spaltennamen als Argument und anschließend mit einem Spaltenobjekt verwendet wird.
val df = Seq(10, 20, 30, 40, 50).toDF("value")
val result1 = df.select(variance("value"))
val result2 = df.select(variance(col("value")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1152
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(10, 20, 30, 40, 50).toDF("value")
/*EWI: SPRKSCL1152 => org.apache.spark.sql.functions.variance has a workaround, see documentation for more info*/
val result1 = df.select(variance("value"))
/*EWI: SPRKSCL1152 => org.apache.spark.sql.functions.variance has a workaround, see documentation for more info*/
val result2 = df.select(variance(col("value")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente variance-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(10, 20, 30, 40, 50).toDF("value")
val result1 = df.select(variance(col("value")))
val result2 = df.select(variance(col("value")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1103¶
Dieser Problemcode ist jetzt veraltet
Meldung: SparkBuilder Methode wird nicht unterstützt _ method name _
Kategorie: Konvertierungsfehler
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Methode erkennt, die von Snowflake in der SparkBuilder-Methodenverkettung nicht unterstützt wird. Daher kann es die Migration der Reader-Anweisung beeinträchtigen.
Im Folgenden finden Sie die nicht unterstützten SparkBuilder-Methoden:
Master
appName
enableHiveSupport
withExtensions
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für eine SparkBuilder-Methodenverkettung mit vielen Methoden, die von Snowflake nicht unterstützt werden.
val spark = SparkSession.builder()
.master("local")
.appName("testApp")
.config("spark.sql.broadcastTimeout", "3600")
.enableHiveSupport()
.getOrCreate()
Ausgabe
Die SMA fügt dem Ausgabecode das EWI SPRKSCL1103
hinzu, um Sie darauf hinzuweisen, dass die Methoden master, appName und enableHiveSupport von Snowpark nicht unterstützt werden. Dies könnte sich auf die Migration der Spark-Sitzungsanweisung auswirken.
val spark = Session.builder.configFile("connection.properties")
/*EWI: SPRKSCL1103 => SparkBuilder Method is not supported .master("local")*/
/*EWI: SPRKSCL1103 => SparkBuilder Method is not supported .appName("testApp")*/
/*EWI: SPRKSCL1103 => SparkBuilder method is not supported .enableHiveSupport()*/
.create
Empfohlene Korrektur
Um die Sitzung zu erstellen, müssen Sie die richtige Snowflake Snowpark-Konfiguration hinzufügen.
In diesem Beispiel wird eine configs-Variable verwendet.
val configs = Map (
"URL" -> "https://<myAccount>.snowflakecomputing.com:<port>",
"USER" -> <myUserName>,
"PASSWORD" -> <myPassword>,
"ROLE" -> <myRole>,
"WAREHOUSE" -> <myWarehouse>,
"DB" -> <myDatabase>,
"SCHEMA" -> <mySchema>
)
val session = Session.builder.configs(configs).create
Außerdem wird die Verwendung einer configFile (profile.properties) mit den Verbindungsinformationen empfohlen:
## profile.properties file (a text file)
URL = https://<account_identifier>.snowflakecomputing.com
USER = <username>
PRIVATEKEY = <unencrypted_private_key_from_the_private_key_file>
ROLE = <role_name>
WAREHOUSE = <warehouse_name>
DB = <database_name>
SCHEMA = <schema_name>
Und mit der Session.builder.configFile
kann die Sitzung erstellt werden:
val session = Session.builder.configFile("/path/to/properties/file").create
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1137¶
Meldung: org.apache.spark.sql.functions.sin verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.sin-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.sin
-Funktion, die zunächst mit einem Spaltennamen als Argument und anschließend mit einem Spaltenobjekt verwendet wird.
val df = Seq(Math.PI / 2, Math.PI, Math.PI / 6).toDF("angle")
val result1 = df.withColumn("sin_value", sin("angle"))
val result2 = df.withColumn("sin_value", sin(col("angle")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1137
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(Math.PI / 2, Math.PI, Math.PI / 6).toDF("angle")
/*EWI: SPRKSCL1137 => org.apache.spark.sql.functions.sin has a workaround, see documentation for more info*/
val result1 = df.withColumn("sin_value", sin("angle"))
/*EWI: SPRKSCL1137 => org.apache.spark.sql.functions.sin has a workaround, see documentation for more info*/
val result2 = df.withColumn("sin_value", sin(col("angle")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente sin-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(Math.PI / 2, Math.PI, Math.PI / 6).toDF("angle")
val result1 = df.withColumn("sin_value", sin(col("angle")))
val result2 = df.withColumn("sin_value", sin(col("angle")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1166¶
Bemerkung
Dieser Problemcode ist jetzt veraltet
Meldung: org.apache.spark.sql.DataFrameReader.format wird nicht unterstützt.
Kategorie: Warnung.
Beschreibung¶
Dieses Problem tritt auf, wenn org.apache.spark.sql.DataFrameReader.format ein Argument hat, das von Snowpark nicht unterstützt wird.
Szenarien¶
Es gibt einige Szenarien, die von der Art des Formats abhängen, das Sie zu laden versuchen. Es kann ein unterstütztes
oder nicht unterstütztes
Format sein.
Szenario 1¶
Eingabe
Das Tool analysiert den Typ des Formats, das Sie zu laden versuchen, die unterstützten Formate sind:
csv
json
orc
parquet
text
Das folgende Beispiel zeigt, wie das Tool die format
-Methode transformiert, wenn ein csv
-Wert übergeben wird.
spark.read.format("csv").load(path)
Ausgabe
Das Tool wandelt die format
-Methode in einen Aufruf der csv
-Methode um, wenn die Ladefunktion einen Parameter hat.
spark.read.csv(path)
Empfohlene Korrektur
In diesem Fall zeigt das Tool die EWI nicht an, d. h. es ist keine Korrektur erforderlich.
Szenario 2¶
Eingabe
Das folgende Beispiel zeigt, wie das Tool die format
-Methode umwandelt, wenn ein net.snowflake.spark.snowflake
-Wert übergeben wird.
spark.read.format("net.snowflake.spark.snowflake").load(path)
Ausgabe
Das Tool zeigt EWI SPRKSCL1166
an, was darauf hinweist, dass der net.snowflake.spark.snowflake
-Wert nicht unterstützt wird.
/*EWI: SPRKSCL1166 => The parameter net.snowflake.spark.snowflake is not supported for org.apache.spark.sql.DataFrameReader.format
EWI: SPRKSCL1112 => org.apache.spark.sql.DataFrameReader.load(scala.String) is not supported*/
spark.read.format("net.snowflake.spark.snowflake").load(path)
Empfohlene Korrektur
Für die nicht unterstützten
Szenarien gibt es keine spezifische Korrektur, da es von den Dateien abhängt, die zu lesen versucht werden.
Szenario 3¶
Eingabe
Das folgende Beispiel zeigt, wie das Tool die format
-Methode umwandelt, wenn es eine csv
übergibt, aber stattdessen eine Variable verwendet.
val myFormat = "csv"
spark.read.format(myFormat).load(path)
Ausgabe
Da das Tool den Wert der Variable zur Laufzeit nicht ermitteln kann, zeigt es die EWI SPRKSCL1163
an, die angibt, dass der Wert nicht unterstützt wird.
/*EWI: SPRKSCL1163 => myFormat is not a literal and can't be evaluated
EWI: SPRKSCL1112 => org.apache.spark.sql.DataFrameReader.load(scala.String) is not supported*/
spark.read.format(myFormat).load(path)
Empfohlene Korrektur
Als Problemumgehung können Sie den Wert der Variablen überprüfen und ihn als Zeichenfolge zum Aufruf von Format
hinzufügen.
Zusätzliche Empfehlungen¶
Der Snowpark-Speicherort akzeptiert nur Cloud-Speicherorte, die einen Snowflake-Stagingbereich verwenden.
Die Dokumentation der von Snowpark unterstützten Methoden finden Sie in der Dokumentation
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1118¶
Meldung: org.apache.spark.sql.functions.trunc hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.trunc-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.functions.trunc
-Funktion, die diese EWI erzeugt.
val df = Seq(
Date.valueOf("2024-10-28"),
Date.valueOf("2023-05-15"),
Date.valueOf("2022-11-20"),
).toDF("date")
val result = df.withColumn("truncated", trunc(col("date"), "month"))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1118
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(
Date.valueOf("2024-10-28"),
Date.valueOf("2023-05-15"),
Date.valueOf("2022-11-20"),
).toDF("date")
/*EWI: SPRKSCL1118 => org.apache.spark.sql.functions.trunc has a workaround, see documentation for more info*/
val result = df.withColumn("truncated", trunc(col("date"), "month"))
Empfohlene Korrektur
Als Problemumgehung können Sie das zweite Argument mit der com.snowflake.snowpark.functions.lit-Funktion in ein Spaltenobjekt umwandeln.
val df = Seq(
Date.valueOf("2024-10-28"),
Date.valueOf("2023-05-15"),
Date.valueOf("2022-11-20"),
).toDF("date")
val result = df.withColumn("truncated", trunc(col("date"), lit("month")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1149¶
Meldung: org.apache.spark.sql.functions.toRadians hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.toRadians-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.toRadians
-Funktion, die zunächst mit einem Spaltennamen als Argument und dann mit einem Spaltenobjekt verwendet wird.
val df = Seq(0, 45, 90, 180, 270).toDF("degrees")
val result1 = df.withColumn("radians", toRadians("degrees"))
val result2 = df.withColumn("radians", toRadians(col("degrees")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1149
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(0, 45, 90, 180, 270).toDF("degrees")
/*EWI: SPRKSCL1149 => org.apache.spark.sql.functions.toRadians has a workaround, see documentation for more info*/
val result1 = df.withColumn("radians", toRadians("degrees"))
/*EWI: SPRKSCL1149 => org.apache.spark.sql.functions.toRadians has a workaround, see documentation for more info*/
val result2 = df.withColumn("radians", toRadians(col("degrees")))
Empfohlene Korrektur
Als Problemumgehung können Sie die radians-Funktion verwenden. Für die Spark-Überladung, die ein Zeichenfolgeargument empfängt, müssen Sie die Zeichenfolge zusätzlich mit der Funktion com.snowflake.snowpark.functions.col in ein Spaltenobjekt umwandeln.
val df = Seq(0, 45, 90, 180, 270).toDF("degrees")
val result1 = df.withColumn("radians", radians(col("degrees")))
val result2 = df.withColumn("radians", radians(col("degrees")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1159¶
Meldung: org.apache.spark.sql.functions.stddev_samp hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.stddev_samp-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.functions.stddev_samp
-Funktion, die diese EWI erzeugt. In diesem Beispiel wird die stddev_samp
-Funktion verwendet, um die Stichprobenstandardabweichung der ausgewählten Spalte zu berechnen.
val df = Seq("1.7", "2.1", "3.0", "4.4", "5.2").toDF("elements")
val result1 = stddev_samp(col("elements"))
val result2 = stddev_samp("elements")
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1159
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq("1.7", "2.1", "3.0", "4.4", "5.2").toDF("elements")
/*EWI: SPRKSCL1159 => org.apache.spark.sql.functions.stddev_samp has a workaround, see documentation for more info*/
val result1 = stddev_samp(col("elements"))
/*EWI: SPRKSCL1159 => org.apache.spark.sql.functions.stddev_samp has a workaround, see documentation for more info*/
val result2 = stddev_samp("elements")
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente stddev_samp-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq("1.7", "2.1", "3.0", "4.4", "5.2").toDF("elements")
val result1 = stddev_samp(col("elements"))
val result2 = stddev_samp(col("elements"))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1108¶
Bemerkung
Dieser Problemcode ist bereits veraltet.
Meldung: org.apache.spark.sql.DataFrameReader.format wird nicht unterstützt.
Kategorie: Warnung.
Beschreibung¶
Dieses Problem tritt auf, wenn org.apache.spark.sql.DataFrameReader.format ein Argument hat, das von Snowpark nicht unterstützt wird.
Szenarien¶
Es gibt einige Szenarien, die von der Art des Formats abhängen, das Sie zu laden versuchen. Es kann ein unterstütztes
oder nicht unterstütztes
Format sein.
Szenario 1¶
Eingabe
Das Tool analysiert den Typ des Formats, das Sie zu laden versuchen, die unterstützten Formate sind:
csv
json
orc
parquet
text
Das folgende Beispiel zeigt, wie das Tool die format
-Methode transformiert, wenn ein csv
-Wert übergeben wird.
spark.read.format("csv").load(path)
Ausgabe
Das Tool wandelt die format
-Methode in einen Aufruf der csv
-Methode um, wenn die Ladefunktion einen Parameter hat.
spark.read.csv(path)
Empfohlene Korrektur
In diesem Fall zeigt das Tool die EWI nicht an, d. h. es ist keine Korrektur erforderlich.
Szenario 2¶
Eingabe
Das folgende Beispiel zeigt, wie das Tool die format
-Methode umwandelt, wenn ein net.snowflake.spark.snowflake
-Wert übergeben wird.
spark.read.format("net.snowflake.spark.snowflake").load(path)
Ausgabe
Das Tool zeigt EWI SPRKSCL1108
an, was darauf hinweist, dass der net.snowflake.spark.snowflake
-Wert nicht unterstützt wird.
/*EWI: SPRKSCL1108 => The parameter net.snowflake.spark.snowflake is not supported for org.apache.spark.sql.DataFrameReader.format
EWI: SPRKSCL1112 => org.apache.spark.sql.DataFrameReader.load(scala.String) is not supported*/
spark.read.format("net.snowflake.spark.snowflake").load(path)
Empfohlene Korrektur
Für die nicht unterstützten
Szenarien gibt es keine spezifische Korrektur, da es von den Dateien abhängt, die zu lesen versucht werden.
Szenario 3¶
Eingabe
Das folgende Beispiel zeigt, wie das Tool die format
-Methode umwandelt, wenn es eine csv
übergibt, aber stattdessen eine Variable verwendet.
val myFormat = "csv"
spark.read.format(myFormat).load(path)
Ausgabe
Da das Tool den Wert der Variable zur Laufzeit nicht ermitteln kann, zeigt es die EWI SPRKSCL1163
an, die angibt, dass der Wert nicht unterstützt wird.
/*EWI: SPRKSCL1108 => myFormat is not a literal and can't be evaluated
EWI: SPRKSCL1112 => org.apache.spark.sql.DataFrameReader.load(scala.String) is not supported*/
spark.read.format(myFormat).load(path)
Empfohlene Korrektur
Als Problemumgehung können Sie den Wert der Variablen überprüfen und ihn als Zeichenfolge zum Aufruf von Format
hinzufügen.
Zusätzliche Empfehlungen¶
Der Snowpark-Speicherort akzeptiert nur Cloud-Speicherorte, die einen Snowflake-Stagingbereich verwenden.
Die Dokumentation der von Snowpark unterstützten Methoden finden Sie in der Dokumentation
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1128¶
Meldung: org.apache.spark.sql.functions.exp verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.exp-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.exp
-Funktion, die zunächst mit einem Spaltennamen als Argument und anschließend mit einem Spaltenobjekt verwendet wird.
val df = Seq(1.0, 2.0, 3.0).toDF("value")
val result1 = df.withColumn("exp_value", exp("value"))
val result2 = df.withColumn("exp_value", exp(col("value")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1128
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(1.0, 2.0, 3.0).toDF("value")
/*EWI: SPRKSCL1128 => org.apache.spark.sql.functions.exp has a workaround, see documentation for more info*/
val result1 = df.withColumn("exp_value", exp("value"))
/*EWI: SPRKSCL1128 => org.apache.spark.sql.functions.exp has a workaround, see documentation for more info*/
val result2 = df.withColumn("exp_value", exp(col("value")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente exp-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(1.0, 2.0, 3.0).toDF("value")
val result1 = df.withColumn("exp_value", exp(col("value")))
val result2 = df.withColumn("exp_value", exp(col("value")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1169¶
Meldung: _ Spark element _ fehlt in der Methodenverkettung.
Kategorie: Warnung.
Beschreibung¶
Dieses Problem tritt auf, wenn SMA feststellt, dass der Aufruf eines Spark-Elements in der Methodenverkettung fehlt. SMA muss dieses Spark-Element kennen, um die Anweisung zu analysieren.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel, bei dem der Aufruf der Ladefunktion in der Methodenverkettung fehlt.
val reader = spark.read.format("json")
val df = reader.load(path)
Ausgabe
SMA fügt dem Ausgabecode die EWI SPRKSCL1169
hinzu, um Sie darauf hinzuweisen, dass ein Aufruf der Ladefunktion in der Methodenverkettung fehlt und SMA die Anweisung nicht analysieren kann.
/*EWI: SPRKSCL1169 => Function 'org.apache.spark.sql.DataFrameReader.load' is missing on the method chaining*/
val reader = spark.read.format("json")
val df = reader.load(path)
Empfohlene Korrektur
Stellen Sie sicher, dass alle Funktionsaufrufe der Methodenverkettung in der gleichen Anweisung stehen.
val reader = spark.read.format("json").load(path)
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1138¶
Meldung: org.apache.spark.sql.functions.sinh hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.sinh-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.sinh
-Funktion, die zunächst mit einem Spaltennamen als Argument und anschließend mit einem Spaltenobjekt verwendet wird.
val df = Seq(0.0, 1.0, 2.0, 3.0).toDF("value")
val result1 = df.withColumn("sinh_value", sinh("value"))
val result2 = df.withColumn("sinh_value", sinh(col("value")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1138
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(0.0, 1.0, 2.0, 3.0).toDF("value")
/*EWI: SPRKSCL1138 => org.apache.spark.sql.functions.sinh has a workaround, see documentation for more info*/
val result1 = df.withColumn("sinh_value", sinh("value"))
/*EWI: SPRKSCL1138 => org.apache.spark.sql.functions.sinh has a workaround, see documentation for more info*/
val result2 = df.withColumn("sinh_value", sinh(col("value")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente sinh-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(0.0, 1.0, 2.0, 3.0).toDF("value")
val result1 = df.withColumn("sinh_value", sinh(col("value")))
val result2 = df.withColumn("sinh_value", sinh(col("value")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1129¶
Meldung: org.apache.spark.sql.functions.floor hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.floor-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.floor
-Funktion, die zunächst mit einem Spaltennamen als Argument, dann mit einem Spaltenobjekt und schließlich mit zwei Spaltenobjekten verwendet wird.
val df = Seq(4.75, 6.22, 9.99).toDF("value")
val result1 = df.withColumn("floor_value", floor("value"))
val result2 = df.withColumn("floor_value", floor(col("value")))
val result3 = df.withColumn("floor_value", floor(col("value"), lit(1)))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1129
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(4.75, 6.22, 9.99).toDF("value")
/*EWI: SPRKSCL1129 => org.apache.spark.sql.functions.floor has a workaround, see documentation for more info*/
val result1 = df.withColumn("floor_value", floor("value"))
/*EWI: SPRKSCL1129 => org.apache.spark.sql.functions.floor has a workaround, see documentation for more info*/
val result2 = df.withColumn("floor_value", floor(col("value")))
/*EWI: SPRKSCL1129 => org.apache.spark.sql.functions.floor has a workaround, see documentation for more info*/
val result3 = df.withColumn("floor_value", floor(col("value"), lit(1)))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente floor-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
Für die Überladung, die ein Spaltenobjekt und eine Skala empfängt, können Sie die callBuiltin-Funktion verwenden, um die Snowflake Builtin-FLOOR-Funktion aufzurufen. Um sie zu verwenden, sollten Sie die Zeichenfolge „floor“ als erstes Argument, die Spalte als zweites Argument und die Skala als drittes Argument übergeben.
val df = Seq(4.75, 6.22, 9.99).toDF("value")
val result1 = df.withColumn("floor_value", floor(col("value")))
val result2 = df.withColumn("floor_value", floor(col("value")))
val result3 = df.withColumn("floor_value", callBuiltin("floor", col("value"), lit(1)))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1168¶
Meldung: _ Spark element _ with argument(s) value(s) _ given arguments _ wird nicht unterstützt.
Kategorie: Warnung.
Beschreibung¶
Dieses Problem tritt auf, wenn SMA feststellt, dass das Spark-Element mit den angegebenen Parametern nicht unterstützt wird.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für ein Spark-Element, dessen Parameter nicht unterstützt wird.
spark.read.format("text").load(path)
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1168
hinzu, um Sie darauf hinzuweisen, dass das Spark-Element mit dem angegebenen Parameter nicht unterstützt wird.
/*EWI: SPRKSCL1168 => org.apache.spark.sql.DataFrameReader.format(scala.String) with argument(s) value(s) (spark.format) is not supported*/
spark.read.format("text").load(path)
Empfohlene Korrektur
Für dieses Szenario gibt es keine spezielle Korrektur.
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1139¶
Meldung: org.apache.spark.sql.functions.sqrt hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.sqrt-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.sqrt
-Funktion, die zunächst mit einem Spaltennamen als Argument und dann mit einem Spaltenobjekt verwendet wird.
val df = Seq(4.0, 16.0, 25.0, 36.0).toDF("value")
val result1 = df.withColumn("sqrt_value", sqrt("value"))
val result2 = df.withColumn("sqrt_value", sqrt(col("value")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1139
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(4.0, 16.0, 25.0, 36.0).toDF("value")
/*EWI: SPRKSCL1139 => org.apache.spark.sql.functions.sqrt has a workaround, see documentation for more info*/
val result1 = df.withColumn("sqrt_value", sqrt("value"))
/*EWI: SPRKSCL1139 => org.apache.spark.sql.functions.sqrt has a workaround, see documentation for more info*/
val result2 = df.withColumn("sqrt_value", sqrt(col("value")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente sqrt-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(4.0, 16.0, 25.0, 36.0).toDF("value")
val result1 = df.withColumn("sqrt_value", sqrt(col("value")))
val result2 = df.withColumn("sqrt_value", sqrt(col("value")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1119¶
Meldung: org.apache.spark.sql.Column.endsWith hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.Column.endsWith-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die Funktion org.apache.spark.sql.Column.endsWith
, die zunächst mit einem Literal-Zeichenfolgeargument und anschließend mit einem Spaltenobjekt-Argument verwendet wird.
val df1 = Seq(
("Alice", "alice@example.com"),
("Bob", "bob@example.org"),
("David", "david@example.com")
).toDF("name", "email")
val result1 = df1.filter(col("email").endsWith(".com"))
val df2 = Seq(
("Alice", "alice@example.com", ".com"),
("Bob", "bob@example.org", ".org"),
("David", "david@example.org", ".com")
).toDF("name", "email", "suffix")
val result2 = df2.filter(col("email").endsWith(col("suffix")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1119
hinzu, um Sie darauf hinzuweisen, dass diese Funktion nicht direkt von Snowpark unterstützt wird, aber es eine Problemumgehung gibt.
val df1 = Seq(
("Alice", "alice@example.com"),
("Bob", "bob@example.org"),
("David", "david@example.com")
).toDF("name", "email")
/*EWI: SPRKSCL1119 => org.apache.spark.sql.Column.endsWith has a workaround, see documentation for more info*/
val result1 = df1.filter(col("email").endsWith(".com"))
val df2 = Seq(
("Alice", "alice@example.com", ".com"),
("Bob", "bob@example.org", ".org"),
("David", "david@example.org", ".com")
).toDF("name", "email", "suffix")
/*EWI: SPRKSCL1119 => org.apache.spark.sql.Column.endsWith has a workaround, see documentation for more info*/
val result2 = df2.filter(col("email").endsWith(col("suffix")))
Empfohlene Korrektur
Als Problemumgehung können Sie die [com.snowflake.snowpark.functions.endswith](https://docs.snowflake.com/developer-guide/snowpark/reference/scala/com/snowflake/snowpark/functions$.html#endswith(expr:com.snowflake.snowpark.Column,str:com.snowflake.snowpark.Column):com.snowflake.snowpark.Column-Funktion verwenden, wobei das erste Argument die Spalte ist, deren Werte überprüft werden sollen, und das zweite Argument das Suffix, das mit den Spaltenwerten verglichen werden soll. Bitte beachten Sie, dass Sie, wenn das Argument der Spark-Funktion endswith
eine Literal-Zeichenfolge ist, diesen mit der Funktion com.snowflake.snowpark.functions.lit in ein Spaltenobjekt umwandeln sollten.
val df1 = Seq(
("Alice", "alice@example.com"),
("Bob", "bob@example.org"),
("David", "david@example.com")
).toDF("name", "email")
val result1 = df1.filter(endswith(col("email"), lit(".com")))
val df2 = Seq(
("Alice", "alice@example.com", ".com"),
("Bob", "bob@example.org", ".org"),
("David", "david@example.org", ".com")
).toDF("name", "email", "suffix")
val result2 = df2.filter(endswith(col("email"), col("suffix")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1148¶
Meldung: org.apache.spark.sql.functions.toDegrees hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.toDegrees-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.toDegrees
-Funktion, die zunächst mit einem Spaltennamen als Argument und dann mit einem Spaltenobjekt verwendet wird.
val df = Seq(Math.PI, Math.PI / 2, Math.PI / 4).toDF("angle_in_radians")
val result1 = df.withColumn("angle_in_degrees", toDegrees("angle_in_radians"))
val result2 = df.withColumn("angle_in_degrees", toDegrees(col("angle_in_radians")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1148
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(Math.PI, Math.PI / 2, Math.PI / 4).toDF("angle_in_radians")
/*EWI: SPRKSCL1148 => org.apache.spark.sql.functions.toDegrees has a workaround, see documentation for more info*/
val result1 = df.withColumn("angle_in_degrees", toDegrees("angle_in_radians"))
/*EWI: SPRKSCL1148 => org.apache.spark.sql.functions.toDegrees has a workaround, see documentation for more info*/
val result2 = df.withColumn("angle_in_degrees", toDegrees(col("angle_in_radians")))
Empfohlene Korrektur
Als Problemumgehung können Sie die degrees-Funktion verwenden. Für die Spark-Überladung, die ein Zeichenfolgeargument empfängt, müssen Sie die Zeichenfolge zusätzlich mit der Funktion com.snowflake.snowpark.functions.col in ein Spaltenobjekt umwandeln.
val df = Seq(Math.PI, Math.PI / 2, Math.PI / 4).toDF("angle_in_radians")
val result1 = df.withColumn("angle_in_degrees", degrees(col("angle_in_radians")))
val result2 = df.withColumn("angle_in_degrees", degrees(col("angle_in_radians")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1158¶
Meldung: org.apache.spark.sql.functions.skewness hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.skewness-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.functions.skewness
-Funktion, die diese EWI erzeugt. In diesem Beispiel wird die skewness
-Funktion verwendet, um die Schiefe der ausgewählten Spalte zu berechnen.
val df = Seq("1", "2", "3").toDF("elements")
val result1 = skewness(col("elements"))
val result2 = skewness("elements")
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1158
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq("1", "2", "3").toDF("elements")
/*EWI: SPRKSCL1158 => org.apache.spark.sql.functions.skewness has a workaround, see documentation for more info*/
val result1 = skewness(col("elements"))
/*EWI: SPRKSCL1158 => org.apache.spark.sql.functions.skewness has a workaround, see documentation for more info*/
val result2 = skewness("elements")
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente skew-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq("1", "2", "3").toDF("elements")
val result1 = skew(col("elements"))
val result2 = skew(col("elements"))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1109¶
Bemerkung
Dieser Problemcode ist jetzt veraltet
Meldung: Der Parameter ist nicht für org.apache.spark.sql.DataFrameReader.option definiert
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA feststellt, dass der Parameter von org.apache.spark.sql.DataFrameReader. option nicht definiert ist.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für einen nicht definierten Parameter für die org.apache.spark.sql.DataFrameReader.option
-Funktion.
spark.read.option("header", True).json(path)
Ausgabe
SMA fügt dem Ausgabecode das EWI SPRKSCL1109
hinzu, um Sie darauf hinzuweisen, dass der Parameter für die org.apache.spark.sql.DataFrameReader.option-Funktion nicht definiert ist.
/*EWI: SPRKSCL1109 => The parameter header=True is not supported for org.apache.spark.sql.DataFrameReader.option*/
spark.read.option("header", True).json(path)
Empfohlene Korrektur
Suchen Sie in der Snowpark-Dokumentation nach Reader-Format-Optionen hier, um die definierten Optionen zu identifizieren.
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1114¶
Meldung: org.apache.spark.sql.functions.repeat hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.repeat-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.functions.repeat
-Funktion, die diese EWI erzeugt.
val df = Seq("Hello", "World").toDF("word")
val result = df.withColumn("repeated_word", repeat(col("word"), 3))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1114
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq("Hello", "World").toDF("word")
/*EWI: SPRKSCL1114 => org.apache.spark.sql.functions.repeat has a workaround, see documentation for more info*/
val result = df.withColumn("repeated_word", repeat(col("word"), 3))
Empfohlene Korrektur
Als Problemumgehung können Sie das zweite Argument mit der com.snowflake.snowpark.functions.lit-Funktion in ein Spaltenobjekt umwandeln.
val df = Seq("Hello", "World").toDF("word")
val result = df.withColumn("repeated_word", repeat(col("word"), lit(3)))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1145¶
Meldung: org.apache.spark.sql.functions.sumDistinct hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.sumDistinct-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.sumDistinct
-Funktion, die zunächst mit einem Spaltennamen als Argument und dann mit einem Spaltenobjekt verwendet wird.
val df = Seq(
("Alice", 10),
("Bob", 15),
("Alice", 10),
("Alice", 20),
("Bob", 15)
).toDF("name", "value")
val result1 = df.groupBy("name").agg(sumDistinct("value"))
val result2 = df.groupBy("name").agg(sumDistinct(col("value")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1145
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(
("Alice", 10),
("Bob", 15),
("Alice", 10),
("Alice", 20),
("Bob", 15)
).toDF("name", "value")
/*EWI: SPRKSCL1145 => org.apache.spark.sql.functions.sumDistinct has a workaround, see documentation for more info*/
val result1 = df.groupBy("name").agg(sumDistinct("value"))
/*EWI: SPRKSCL1145 => org.apache.spark.sql.functions.sumDistinct has a workaround, see documentation for more info*/
val result2 = df.groupBy("name").agg(sumDistinct(col("value")))
Empfohlene Korrektur
Als Problemumgehung können Sie die sum_distinct–Funktion verwenden. Für die Spark-Überladung, die ein Zeichenfolgeargument empfängt, müssen Sie die Zeichenfolge zusätzlich mit der Funktion com.snowflake.snowpark.functions.col in ein Spaltenobjekt umwandeln.
val df = Seq(
("Alice", 10),
("Bob", 15),
("Alice", 10),
("Alice", 20),
("Bob", 15)
).toDF("name", "value")
val result1 = df.groupBy("name").agg(sum_distinct(col("value")))
val result2 = df.groupBy("name").agg(sum_distinct(col("value")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1171¶
Meldung: Snowpark unterstützt keine Split-Funktionen mit mehr als zwei Parametern oder mit Regex-Mustern. Siehe Dokumentation für weitere Informationen.
Kategorie: Warnung.
Beschreibung¶
Dieses Problem tritt auf, wenn SMA feststellt, dass org.apache.spark.sql.functions.split mehr als zwei Parameter hat oder ein Regex-Muster enthält.
Szenarien¶
Die split
-Funktion wird verwendet, um die angegebene Spalte um Übereinstimmungen mit dem angegebenen Muster zu trennen. Diese Spark-Funktion hat drei Überladungen.
Szenario 1¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.functions.split
-Funktion, die diese EWI erzeugt. In diesem Beispiel hat die Funktion split
zwei Parameter, und das zweite Argument ist eine Zeichenfolge und kein Regex-Muster.
val df = Seq("Snowflake", "Snowpark", "Snow", "Spark").toDF("words")
val result = df.select(split(col("words"), "Snow"))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1171
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird.
val df = Seq("Snowflake", "Snowpark", "Snow", "Spark").toDF("words")
/* EWI: SPRKSCL1171 => Snowpark does not support split functions with more than two parameters or containing regex pattern. See documentation for more info. */
val result = df.select(split(col("words"), "Snow"))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente split-Funktion, die ein Spaltenobjekt als zweites Argument erhält. Aus diesem Grund kann die Spark-Überladung, die ein Zeichenfolgeargument im zweiten Argument erhält, das aber kein Regex-Muster ist, den String in ein Spaltenobjekt konvertieren, indem sie die com.snowflake.snowpark.functions.lit-Funktion als Problemumgehung verwendet.
val df = Seq("Snowflake", "Snowpark", "Snow", "Spark").toDF("words")
val result = df.select(split(col("words"), lit("Snow")))
Szenario 2¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.functions.split
-Funktion, die diese EWI erzeugt. In diesem Beispiel hat die split
-Funktion zwei Parameter und das zweite Argument ist ein Regex-Muster.
val df = Seq("Snowflake", "Snowpark", "Snow", "Spark").toDF("words")
val result = df.select(split(col("words"), "^([\\d]+-[\\d]+-[\\d])"))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1171
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, da Regex-Muster von Snowflake nicht unterstützt werden.
val df = Seq("Snowflake", "Snowpark", "Snow", "Spark").toDF("words")
/* EWI: SPRKSCL1171 => Snowpark does not support split functions with more than two parameters or containing regex pattern. See documentation for more info. */
val result = df.select(split(col("words"), "^([\\d]+-[\\d]+-[\\d])"))
Empfohlene Korrektur
Da Snowflake keine Regex-Muster unterstützt, versuchen Sie, das Muster durch eine Nicht-Regex-Musterzeichenfolge zu ersetzen.
Szenario 3¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.functions.split
-Funktion, die diese EWI erzeugt. In diesem Beispiel hat die split
-Funktion mehr als zwei Parameter.
val df = Seq("Snowflake", "Snowpark", "Snow", "Spark").toDF("words")
val result = df.select(split(df("words"), "Snow", 3))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1171
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, da Snowflake keine Split-Funktion mit mehr als zwei Parametern hat.
val df = Seq("Snowflake", "Snowpark", "Snow", "Spark").toDF("words")
/* EWI: SPRKSCL1171 => Snowpark does not support split functions with more than two parameters or containing regex pattern. See documentation for more info. */
val result3 = df.select(split(df("words"), "Snow", 3))
Empfohlene Korrektur
Da Snowflake keine Split-Funktion mit mehr als zwei Parametern unterstützt, versuchen Sie, die von Snowflake unterstützte Split-Funktion zu verwenden.
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1120¶
Meldung: org.apache.spark.sql.functions.asin hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.asin-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.asin
-Funktion, die zunächst mit einem Spaltennamen als Argument und anschließend mit einem Spaltenobjekt verwendet wird.
val df = Seq(0.5, 0.6, -0.5).toDF("value")
val result1 = df.select(col("value"), asin("value").as("asin_value"))
val result2 = df.select(col("value"), asin(col("value")).as("asin_value"))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1120
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(0.5, 0.6, -0.5).toDF("value")
/*EWI: SPRKSCL1120 => org.apache.spark.sql.functions.asin has a workaround, see documentation for more info*/
val result1 = df.select(col("value"), asin("value").as("asin_value"))
/*EWI: SPRKSCL1120 => org.apache.spark.sql.functions.asin has a workaround, see documentation for more info*/
val result2 = df.select(col("value"), asin(col("value")).as("asin_value"))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente asin-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(0.5, 0.6, -0.5).toDF("value")
val result1 = df.select(col("value"), asin(col("value")).as("asin_value"))
val result2 = df.select(col("value"), asin(col("value")).as("asin_value"))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1130¶
Meldung: org.apache.spark.sql.functions.greatest hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.greatest-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.greatest
-Funktion, die zunächst mit mehreren Spaltennamen als Argumente und dann mit mehreren Spaltenobjekten verwendet wird.
val df = Seq(
("apple", 10, 20, 15),
("banana", 5, 25, 18),
("mango", 12, 8, 30)
).toDF("fruit", "value1", "value2", "value3")
val result1 = df.withColumn("greatest", greatest("value1", "value2", "value3"))
val result2 = df.withColumn("greatest", greatest(col("value1"), col("value2"), col("value3")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1130
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(
("apple", 10, 20, 15),
("banana", 5, 25, 18),
("mango", 12, 8, 30)
).toDF("fruit", "value1", "value2", "value3")
/*EWI: SPRKSCL1130 => org.apache.spark.sql.functions.greatest has a workaround, see documentation for more info*/
val result1 = df.withColumn("greatest", greatest("value1", "value2", "value3"))
/*EWI: SPRKSCL1130 => org.apache.spark.sql.functions.greatest has a workaround, see documentation for more info*/
val result2 = df.withColumn("greatest", greatest(col("value1"), col("value2"), col("value3")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente greatest-Funktion, die mehrere Spaltenobjekte als Argumente erhält. Aus diesem Grund wird die Spark-Überladung, die Spaltenobjekte als Argumente erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die mehrere Zeichenfolgeargumente empfängt, können Sie die Zeichenfolgen in Spaltenobjekte umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(
("apple", 10, 20, 15),
("banana", 5, 25, 18),
("mango", 12, 8, 30)
).toDF("fruit", "value1", "value2", "value3")
val result1 = df.withColumn("greatest", greatest(col("value1"), col("value2"), col("value3")))
val result2 = df.withColumn("greatest", greatest(col("value1"), col("value2"), col("value3")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
Beschreibung: >- Snowpark und Snowpark-Erweiterungen wurden nicht zur Projektkonfigurationsdatei hinzugefügt.
SPRKSCL1161¶
Meldung: Abhängigkeiten können nicht hinzugefügt werden.
Kategorie: Konvertierungsfehler.
Beschreibung¶
Dieses Problem tritt auf, wenn SMA in der Projektkonfigurationsdatei eine Spark-Version erkennt, die von SMA nicht unterstützt wird. Daher konnte SMA die Abhängigkeiten von Snowpark- und Snowpark-Erweiterungen nicht zur entsprechenden Projektkonfigurationsdatei hinzufügen. Wenn die Snowpark-Abhängigkeiten nicht hinzugefügt werden, wird der migrierte Code nicht kompiliert.
Szenarien¶
Es gibt drei mögliche Szenarien: sbt, gradle und pom.xml. Die SMA versucht, die Projektkonfigurationsdatei zu verarbeiten, indem sie Spark-Abhängigkeiten entfernt und Abhängigkeiten von Snowpark- und Snowpark-Erweiterungen hinzufügt.
Szenario 1¶
Eingabe
Nachfolgend finden Sie ein Beispiel für den Abschnitt dependencies
einer sbt
-Projektkonfigurationsdatei.
...
libraryDependencies += "org.apache.spark" % "spark-core_2.13" % "3.5.3"
libraryDependencies += "org.apache.spark" % "spark-sql_2.13" % "3.5.3"
...
Ausgabe
Die SMA fügt die EWI SPRKSCL1161
zum Probleminventar hinzu, da die Spark-Version nicht unterstützt wird und die Ausgabe gleich bleibt.
...
libraryDependencies += "org.apache.spark" % "spark-core_2.13" % "3.5.3"
libraryDependencies += "org.apache.spark" % "spark-sql_2.13" % "3.5.3"
...
Empfohlene Korrektur
Entfernen Sie manuell die Spark-Abhängigkeiten und fügen Sie die Abhängigkeiten von Snowpark und Snowpark-Erweiterungen zur sbt
-Projektkonfigurationsdatei hinzu.
...
libraryDependencies += "com.snowflake" % "snowpark" % "1.14.0"
libraryDependencies += "net.mobilize.snowpark-extensions" % "snowparkextensions" % "0.0.18"
...
Stellen Sie sicher, dass Sie die Snowpark-Version verwenden, die den Anforderungen Ihres Projekts am besten entspricht.
Szenario 2¶
Eingabe
Nachfolgend finden Sie ein Beispiel für den Abschnitt dependencies
einer gradle
-Projektkonfigurationsdatei.
dependencies {
implementation group: 'org.apache.spark', name: 'spark-core_2.13', version: '3.5.3'
implementation group: 'org.apache.spark', name: 'spark-sql_2.13', version: '3.5.3'
...
}
Ausgabe
Die SMA fügt die EWI SPRKSCL1161
zum Probleminventar hinzu, da die Spark-Version nicht unterstützt wird und die Ausgabe gleich bleibt.
dependencies {
implementation group: 'org.apache.spark', name: 'spark-core_2.13', version: '3.5.3'
implementation group: 'org.apache.spark', name: 'spark-sql_2.13', version: '3.5.3'
...
}
Empfohlene Korrektur
Entfernen Sie manuell die Spark-Abhängigkeiten und fügen Sie die Abhängigkeiten von Snowpark und Snowpark-Erweiterungen zur gradle
-Projektkonfigurationsdatei hinzu.
dependencies {
implementation 'com.snowflake:snowpark:1.14.2'
implementation 'net.mobilize.snowpark-extensions:snowparkextensions:0.0.18'
...
}
Stellen Sie sicher, dass die Version der Abhängigkeiten den Anforderungen Ihres Projekts entspricht.
Szenario 3¶
Eingabe
Nachfolgend finden Sie ein Beispiel für den Abschnitt dependencies
einer pom.xml
- Projektkonfigurationsdatei.
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.13</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.13</artifactId>
<version>3.5.3</version>
<scope>compile</scope>
</dependency>
...
</dependencies>
Ausgabe
Die SMA fügt die EWI SPRKSCL1161
zum Probleminventar hinzu, da die Spark-Version nicht unterstützt wird und die Ausgabe gleich bleibt.
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.13</artifactId>
<version>3.5.3</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.13</artifactId>
<version>3.5.3</version>
<scope>compile</scope>
</dependency>
...
</dependencies>
Empfohlene Korrektur
Entfernen Sie manuell die Spark-Abhängigkeiten und fügen Sie die Abhängigkeiten von Snowpark und Snowpark-Erweiterungen zur gradle
-Projektkonfigurationsdatei hinzu.
<dependencies>
<dependency>
<groupId>com.snowflake</groupId>
<artifactId>snowpark</artifactId>
<version>1.14.2</version>
</dependency>
<dependency>
<groupId>net.mobilize.snowpark-extensions</groupId>
<artifactId>snowparkextensions</artifactId>
<version>0.0.18</version>
</dependency>
...
</dependencies>
Stellen Sie sicher, dass die Version der Abhängigkeiten den Anforderungen Ihres Projekts entspricht.
Zusätzliche Empfehlungen¶
Stellen Sie sicher, dass „input“ eine Projektkonfigurationsdatei hat:
build.sbt
build.gradle
pom.xml
Die von SMA unterstützte Spark-Version ist 2.12:3.1.2
Die neueste Snowpark-Version können Sie hier einsehen.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1155¶
Warnung
Dieser Problemcode gilt als veraltet bereits seit [Spark Conversion Core Version 4.3.2](../../../general/release-notes/README. md#spark-conversion-core-version-432)
Meldung: org.apache.spark.sql.functions.countDistinct hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.countDistinct-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.countDistinct
-Funktion, die zunächst mit Spaltennamen als Argumenten und dann mit Spaltenobjekten verwendet wird.
val df = Seq(
("Alice", 1),
("Bob", 2),
("Alice", 3),
("Bob", 4),
("Alice", 1),
("Charlie", 5)
).toDF("name", "value")
val result1 = df.select(countDistinct("name", "value"))
val result2 = df.select(countDistinct(col("name"), col("value")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1155
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(
("Alice", 1),
("Bob", 2),
("Alice", 3),
("Bob", 4),
("Alice", 1),
("Charlie", 5)
).toDF("name", "value")
/*EWI: SPRKSCL1155 => org.apache.spark.sql.functions.countDistinct has a workaround, see documentation for more info*/
val result1 = df.select(countDistinct("name", "value"))
/*EWI: SPRKSCL1155 => org.apache.spark.sql.functions.countDistinct has a workaround, see documentation for more info*/
val result2 = df.select(countDistinct(col("name"), col("value")))
Empfohlene Korrektur
Als Problemumgehung können Sie die count_distinct-Funktion verwenden. Für die Spark-Überladung, die Zeichenfolgeargumente empfängt, müssen Sie die Zeichenfolgen zusätzlich mit der com.snowflake.snowpark.functions.col-Funktion in Spaltenobjekte umwandeln.
val df = Seq(
("Alice", 1),
("Bob", 2),
("Alice", 3),
("Bob", 4),
("Alice", 1),
("Charlie", 5)
).toDF("name", "value")
val result1 = df.select(count_distinct(col("name"), col("value")))
val result2 = df.select(count_distinct(col("name"), col("value")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1104¶
Dieser Problemcode ist jetzt veraltet
Meldung: Die Spark-Session-Builder-Option wird nicht unterstützt.
Kategorie: Konvertierungsfehler.
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.SparkSession.Builder.config-Funktion feststellt, die eine Option der Spark-Sitzung setzt und von Snowpark nicht unterstützt wird.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.SparkSession.Builder.config
-Funktion, mit der Sie eine Option in der Spark-Sitzung festlegen können.
val spark = SparkSession.builder()
.master("local")
.appName("testApp")
.config("spark.sql.broadcastTimeout", "3600")
.getOrCreate()
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1104
hinzu, um Sie darauf hinzuweisen, dass die config-Methode von Snowpark nicht unterstützt wird. In diesem Fall ist es nicht möglich, Optionen in der Spark-Sitzung über die config-Funktion einzustellen, was sich auf die Migration der Spark-Sitzungsanweisung auswirken kann.
val spark = Session.builder.configFile("connection.properties")
/*EWI: SPRKSCL1104 => SparkBuilder Option is not supported .config("spark.sql.broadcastTimeout", "3600")*/
.create()
Empfohlene Korrektur
Um die Sitzung zu erstellen, müssen Sie die richtige Snowflake Snowpark-Konfiguration hinzufügen.
In diesem Beispiel wird eine configs-Variable verwendet.
val configs = Map (
"URL" -> "https://<myAccount>.snowflakecomputing.com:<port>",
"USER" -> <myUserName>,
"PASSWORD" -> <myPassword>,
"ROLE" -> <myRole>,
"WAREHOUSE" -> <myWarehouse>,
"DB" -> <myDatabase>,
"SCHEMA" -> <mySchema>
)
val session = Session.builder.configs(configs).create
Außerdem wird die Verwendung einer configFile (profile.properties) mit den Verbindungsinformationen empfohlen:
## profile.properties file (a text file)
URL = https://<account_identifier>.snowflakecomputing.com
USER = <username>
PRIVATEKEY = <unencrypted_private_key_from_the_private_key_file>
ROLE = <role_name>
WAREHOUSE = <warehouse_name>
DB = <database_name>
SCHEMA = <schema_name>
Und mit der Session.builder.configFile
kann die Sitzung erstellt werden:
val session = Session.builder.configFile("/path/to/properties/file").create
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1124¶
Meldung: org.apache.spark.sql.functions.cosh hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.cosh-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.cosh
-Funktion, die zunächst mit einem Spaltennamen als Argument und anschließend mit einem Spaltenobjekt verwendet wird.
val df = Seq(0.0, 1.0, 2.0, -1.0).toDF("value")
val result1 = df.withColumn("cosh_value", cosh("value"))
val result2 = df.withColumn("cosh_value", cosh(col("value")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1124
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(0.0, 1.0, 2.0, -1.0).toDF("value")
/*EWI: SPRKSCL1124 => org.apache.spark.sql.functions.cosh has a workaround, see documentation for more info*/
val result1 = df.withColumn("cosh_value", cosh("value"))
/*EWI: SPRKSCL1124 => org.apache.spark.sql.functions.cosh has a workaround, see documentation for more info*/
val result2 = df.withColumn("cosh_value", cosh(col("value")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente cosh-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(0.0, 1.0, 2.0, -1.0).toDF("value")
val result1 = df.withColumn("cosh_value", cosh(col("value")))
val result2 = df.withColumn("cosh_value", cosh(col("value")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1175¶
Meldung: Die Zwei-Parameter-udf
-Funktion wird in Snowpark nicht unterstützt. Sie sollte in eine Ein-Parameter-udf
-Funktion umgewandelt werden. Bitte lesen Sie in der Dokumentation nach, wie Sie den Code manuell ändern können, damit er in Snowpark funktioniert.
Kategorie: Konvertierungsfehler.
Beschreibung¶
Dieses Problem tritt auf, wenn SMA die Verwendung der Zwei-Parameter-Funktion org.apache.spark.sql.functions.udf im Quellcode erkennt, weil Snowpark nicht über eine äquivalente Zwei-Parameter-udf
-Funktion verfügt und der Ausgabecode dann möglicherweise nicht kompiliert wird.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.functions.udf
-Funktion, die diese EWI erzeugt. In diesem Beispiel hat die udf
-Funktion zwei Parameter.
val myFuncUdf = udf(new UDF1[String, Integer] {
override def call(s: String): Integer = s.length()
}, IntegerType)
Ausgabe
Die SMA fügt dem Ausgabecode das EWI SPRKSCL1175
hinzu, um Sie darauf hinzuweisen, dass die udf
-Funktion nicht unterstützt wird, da sie zwei Parameter hat.
/*EWI: SPRKSCL1175 => The two-parameter udf function is not supported in Snowpark. It should be converted into a single-parameter udf function. Please check the documentation to learn how to manually modify the code to make it work in Snowpark.*/
val myFuncUdf = udf(new UDF1[String, Integer] {
override def call(s: String): Integer = s.length()
}, IntegerType)
Empfohlene Korrektur
Snowpark unterstützt nur die Ein-Parameter-udf
-Funktion (ohne den Parameter für den Rückgabetyp). Daher sollten Sie Ihre Zwei-Parameter-udf
-Funktion in eine Ein-Parameter-udf
-Funktion umwandeln, damit sie in Snowpark funktioniert.
Für den oben erwähnten Beispielcode müssten Sie ihn zum Beispiel manuell in diesen umwandeln:
val myFuncUdf = udf((s: String) => s.length())
Bitte beachten Sie, dass es bei der Erstellung von udf
in Snowpark einige Beschränkungen gibt, die möglicherweise zusätzliche manuelle Änderungen an Ihrem Code erfordern. Bitte prüfen Sie diese anderen Empfehlungen [hier](../../issue-codes-by-source/spark-scala/README. md#additional-recommendations) im Zusammenhang mit der Erstellung von Ein-Parameter-udf
-Funktionen in Snowpark für weitere Details.
Zusätzliche Empfehlungen¶
Wenn Sie mehr darüber erfahren möchten, wie Sie benutzerdefinierte Funktionen in Snowpark erstellen, lesen Sie bitte die folgende Dokumentation: Benutzerdefinierte Funktionen erstellen (UDFs) für DataFrames in Scala
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1001¶
Meldung: Dieser Codeabschnitt hat Parsing-Fehler. Der Parsing-Fehler wurde gefunden in: Zeile _ line number , column column number _. Beim Versuch, das _ statement _ zu parsen. Diese Datei wurde nicht konvertiert, daher wird erwartet, dass sie noch Referenzen auf die Spark-API enthält.
Kategorie: Parsing-Fehler.
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Anweisung im Code einer Datei entdeckt, die nicht korrekt gelesen oder verstanden werden kann, es wird als Parsing-Fehler bezeichnet. Außerdem tritt dieses Problem auf, wenn eine Datei einen oder mehrere Parsing-Fehler aufweist.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für ungültigen Scala-Code.
/#/(%$"$%
Class myClass {
def function1() = { 1 }
}
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1001
hinzu, um Sie darauf hinzuweisen, dass der Code der Datei Parsing-Fehler aufweist. Daher ist SMA nicht in der Lage, eine Datei mit diesem Fehler zu verarbeiten.
// **********************************************************************************************************************
// EWI: SPRKSCL1001 => This code section has parsing errors
// The parsing error was found at: line 0, column 0. When trying to parse ''.
// This file was not converted, so it is expected to still have references to the Spark API
// **********************************************************************************************************************
/#/(%$"$%
Class myClass {
def function1() = { 1 }
}
Empfohlene Korrektur
Da die Meldung die Fehleranweisung genau angibt, können Sie versuchen, die ungültige Syntax zu identifizieren und sie zu entfernen oder die Anweisung auszukommentieren, um den Parsing-Fehler zu vermeiden.
Class myClass {
def function1() = { 1 }
}
// /#/(%$"$%
Class myClass {
def function1() = { 1 }
}
Zusätzliche Empfehlungen¶
Prüfen Sie, ob der Code der Datei ein gültiger Scala-Code ist.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1141¶
Meldung: org.apache.spark.sql.functions.stddev_pop hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.stddev_pop-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.stddev_pop
-Funktion, die zunächst mit einem Spaltennamen als Argument und dann mit einem Spaltenobjekt verwendet wird.
Eingabe
val df = Seq(
("Alice", 23),
("Bob", 30),
("Carol", 27),
("David", 25),
).toDF("name", "age")
val result1 = df.select(stddev_pop("age"))
val result2 = df.select(stddev_pop(col("age")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1141
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(
("Alice", 23),
("Bob", 30),
("Carol", 27),
("David", 25),
).toDF("name", "age")
/*EWI: SPRKSCL1141 => org.apache.spark.sql.functions.stddev_pop has a workaround, see documentation for more info*/
val result1 = df.select(stddev_pop("age"))
/*EWI: SPRKSCL1141 => org.apache.spark.sql.functions.stddev_pop has a workaround, see documentation for more info*/
val result2 = df.select(stddev_pop(col("age")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente stddev_pop-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(
("Alice", 23),
("Bob", 30),
("Carol", 27),
("David", 25),
).toDF("name", "age")
val result1 = df.select(stddev_pop(col("age")))
val result2 = df.select(stddev_pop(col("age")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1110¶
Bemerkung
Dieser Problemcode ist jetzt veraltet
Meldung: Reader-Methode wird nicht unterstützt _ method name _.
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Methode erkennt, die von Snowflake in der DataFrameReader-Methodenverkettung nicht unterstützt wird. Dann könnte sich dies auf die Migration der Reader-Anweisung auswirken.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für eine DataFrameReader-Methodenverkettung, bei der die Lastmethode nicht von Snowflake unterstützt wird.
spark.read.
format("net.snowflake.spark.snowflake").
option("query", s"select * from $tablename")
load()
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1110
hinzu, um Sie darauf hinzuweisen, dass die Lademethode von Snowpark nicht unterstützt wird. Dann könnte sich dies auf die Migration der Reader-Anweisung auswirken.
session.sql(s"select * from $tablename")
/*EWI: SPRKSCL1110 => Reader method not supported .load()*/
Empfohlene Korrektur
Lesen Sie die Snowpark-Dokumentation für den Reader hier, um die von Snowflake unterstützten Methoden kennenzulernen.
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1100¶
Dieser Problemcode gilt als veraltet bereits seit Spark Conversion Core 2.3.22
Meldung: Neupartitionierung wird nicht unterstützt.
Kategorie: Parsing-Fehler.
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.DataFrame.repartition-Funktion feststellt, die von Snowpark nicht unterstützt wird. Snowflake verwaltet den Speicher und die Workload auf den Clustern, so dass eine Neupartitionierung nicht erforderlich ist.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.DataFrame.repartition
-Funktion, die verwendet wird, um eine neue DataFrame
zurückzugeben, die durch die angegebenen Partitionierungsausdrücke partitioniert wurde.
var nameData = Seq("James", "Sarah", "Dylan", "Leila, "Laura", "Peter")
var jobData = Seq("Police", "Doctor", "Actor", "Teacher, "Dentist", "Fireman")
var ageData = Seq(40, 38, 34, 27, 29, 55)
val dfName = nameData.toDF("name")
val dfJob = jobData.toDF("job")
val dfAge = ageData.toDF("age")
val dfRepartitionByExpresion = dfName.repartition($"name")
val dfRepartitionByNumber = dfJob.repartition(3)
val dfRepartitionByBoth = dfAge.repartition(3, $"age")
val joinedDf = dfRepartitionByExpresion.join(dfRepartitionByNumber)
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1100
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht unterstützt wird.
var nameData = Seq("James", "Sarah", "Dylan", "Leila, "Laura", "Peter")
var jobData = Seq("Police", "Doctor", "Actor", "Teacher, "Dentist", "Fireman")
var ageData = Seq(40, 38, 34, 27, 29, 55)
val dfName = nameData.toDF("name")
val dfJob = jobData.toDF("job")
val dfAge = ageData.toDF("age")
/*EWI: SPRKSCL1100 => Repartition is not supported*/
val dfRepartitionByExpresion = dfName.repartition($"name")
/*EWI: SPRKSCL1100 => Repartition is not supported*/
val dfRepartitionByNumber = dfJob.repartition(3)
/*EWI: SPRKSCL1100 => Repartition is not supported*/
val dfRepartitionByBoth = dfAge.repartition(3, $"age")
val joinedDf = dfRepartitionByExpresion.join(dfRepartitionByNumber)
Empfohlene Korrektur
Da Snowflake den Speicher und die Workload auf den Clustern verwaltet, ist eine Neupartitionierung nicht erforderlich. Das bedeutet, dass die Verwendung von repartition vor der Verknüpfung überhaupt nicht erforderlich ist.
var nameData = Seq("James", "Sarah", "Dylan", "Leila, "Laura", "Peter")
var jobData = Seq("Police", "Doctor", "Actor", "Teacher, "Dentist", "Fireman")
var ageData = Seq(40, 38, 34, 27, 29, 55)
val dfName = nameData.toDF("name")
val dfJob = jobData.toDF("job")
val dfAge = ageData.toDF("age")
val dfRepartitionByExpresion = dfName
val dfRepartitionByNumber = dfJob
val dfRepartitionByBoth = dfAge
val joinedDf = dfRepartitionByExpresion.join(dfRepartitionByNumber)
Zusätzliche Empfehlungen¶
Das Snowflake Architekturhandbuch gibt Ihnen einen Einblick in die Snowflake-Speicherverwaltung.
Die Snowpark Datenframe-Referenz könnte nützlich sein, wenn es darum geht, ein bestimmtes Szenario anzupassen, ohne dass eine Neupartitionierung erforderlich ist.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1151¶
Meldung: org.apache.spark.sql.functions.var_samp hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.var_samp-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.var_samp
-Funktion, die zunächst mit einem Spaltennamen als Argument und dann mit einem Spaltenobjekt verwendet wird.
val df = Seq(
("A", 10),
("A", 20),
("A", 30),
("B", 40),
("B", 50),
("B", 60)
).toDF("category", "value")
val result1 = df.groupBy("category").agg(var_samp("value"))
val result2 = df.groupBy("category").agg(var_samp(col("value")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1151
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(
("A", 10),
("A", 20),
("A", 30),
("B", 40),
("B", 50),
("B", 60)
).toDF("category", "value")
/*EWI: SPRKSCL1151 => org.apache.spark.sql.functions.var_samp has a workaround, see documentation for more info*/
val result1 = df.groupBy("category").agg(var_samp("value"))
/*EWI: SPRKSCL1151 => org.apache.spark.sql.functions.var_samp has a workaround, see documentation for more info*/
val result2 = df.groupBy("category").agg(var_samp(col("value")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente var_samp-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(
("A", 10),
("A", 20),
("A", 30),
("B", 40),
("B", 50),
("B", 60)
).toDF("category", "value")
val result1 = df.groupBy("category").agg(var_samp(col("value")))
val result2 = df.groupBy("category").agg(var_samp(col("value")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
Beschreibung: >- Das Format des Readers auf DataFrameReader-Methodenverkettung ist nicht eines der von Snowpark definierten.
SPRKSCL1165¶
Meldung: Reader-Format auf DataFrameReader-Methodenverkettung kann nicht definiert werden
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA feststellt, dass das Format
des Readers in der DataFrameReader-Methodenverkettung nicht zu den folgenden von Snowpark unterstützten Formaten gehört: avro
, csv
, json
, orc
, parquet
und xml
. Daher kann SMA nicht feststellen, ob Einstellungsoptionen definiert sind oder nicht.
Szenario¶
Eingabe
Unten sehen Sie ein Beispiel für eine DataFrameReader-Methodenverkettung, bei der SMA das Format des Readers bestimmen kann.
spark.read.format("net.snowflake.spark.snowflake")
.option("query", s"select * from $tableName")
.load()
Ausgabe
Der SMA fügt dem Ausgabecode das EWI SPRKSCL1165
hinzu, um Sie darauf hinzuweisen, dass das Format
des Readers nicht in der gebenden DataFrameReader-Methodenverkettung bestimmt werden kann.
/*EWI: SPRKSCL1165 => Reader format on DataFrameReader method chaining can't be defined*/
spark.read.option("query", s"select * from $tableName")
.load()
Empfohlene Korrektur
In der Snowpark-Dokumentation finden Sie hier weitere Informationen zum Reader-Format.
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1134¶
Meldung: org.apache.spark.sql.functions.log bietet eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.log-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.functions.log
-Funktion, die diese EWI erzeugt.
val df = Seq(10.0, 20.0, 30.0, 40.0).toDF("value")
val result1 = df.withColumn("log_value", log(10, "value"))
val result2 = df.withColumn("log_value", log(10, col("value")))
val result3 = df.withColumn("log_value", log("value"))
val result4 = df.withColumn("log_value", log(col("value")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1134
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(10.0, 20.0, 30.0, 40.0).toDF("value")
/*EWI: SPRKSCL1134 => org.apache.spark.sql.functions.log has a workaround, see documentation for more info*/
val result1 = df.withColumn("log_value", log(10, "value"))
/*EWI: SPRKSCL1134 => org.apache.spark.sql.functions.log has a workaround, see documentation for more info*/
val result2 = df.withColumn("log_value", log(10, col("value")))
/*EWI: SPRKSCL1134 => org.apache.spark.sql.functions.log has a workaround, see documentation for more info*/
val result3 = df.withColumn("log_value", log("value"))
/*EWI: SPRKSCL1134 => org.apache.spark.sql.functions.log has a workaround, see documentation for more info*/
val result4 = df.withColumn("log_value", log(col("value")))
Empfohlene Korrektur
Im Folgenden finden Sie die verschiedenen Umgehungsmöglichkeiten für alle Überladungen der log
-Funktion.
1. def log(base: Double, columnName: String): Spalte
Sie können die Basis mit der com.snowflake.snowpark.functions.lit-Funktion in ein Spaltenobjekt umwandeln und den Spaltennamen mit der com.snowflake.snowpark.functions.col-Funktion in ein Spaltenobjekt umwandeln.
val result1 = df.withColumn("log_value", log(lit(10), col("value")))
2. def log(base: Double, a: Column): Spalte
Sie können die Basis in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.lit-Funktion verwenden.
val result2 = df.withColumn("log_value", log(lit(10), col("value")))
3.def log(columnNam: String): Spalte
Sie können lit(Math.E)
als erstes Argument übergeben und den Spaltennamen mit der com.snowflake.snowpark.functions.col-Funktion in ein Spaltenobjekt umwandeln und dieses als zweites Argument übergeben.
val result3 = df.withColumn("log_value", log(lit(Math.E), col("value")))
4. def log(e: Column): Spalte
Sie können lit(Math.E)
als erstes Argument und das Spaltenobjekt als zweites Argument übergeben.
val result4 = df.withColumn("log_value", log(lit(Math.E), col("value")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1125¶
Warnung
Dieser Fehlercode ist veraltet seit Spark Conversion Core 2.9.0
Meldung: org.apache.spark.sql.functions.count hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.count-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.count
-Funktion, die zunächst mit einem Spaltennamen als Argument und anschließend mit einem Spaltenobjekt verwendet wird.
val df = Seq(
("Alice", "Math"),
("Bob", "Science"),
("Alice", "Science"),
("Bob", null)
).toDF("name", "subject")
val result1 = df.groupBy("name").agg(count("subject").as("subject_count"))
val result2 = df.groupBy("name").agg(count(col("subject")).as("subject_count"))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1125
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(
("Alice", "Math"),
("Bob", "Science"),
("Alice", "Science"),
("Bob", null)
).toDF("name", "subject")
/*EWI: SPRKSCL1125 => org.apache.spark.sql.functions.count has a workaround, see documentation for more info*/
val result1 = df.groupBy("name").agg(count("subject").as("subject_count"))
/*EWI: SPRKSCL1125 => org.apache.spark.sql.functions.count has a workaround, see documentation for more info*/
val result2 = df.groupBy("name").agg(count(col("subject")).as("subject_count"))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente count-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(
("Alice", "Math"),
("Bob", "Science"),
("Alice", "Science"),
("Bob", null)
).toDF("name", "subject")
val result1 = df.groupBy("name").agg(count(col("subject")).as("subject_count"))
val result2 = df.groupBy("name").agg(count(col("subject")).as("subject_count"))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1174¶
Meldung: Die Ein-Parameter-Funktion udf
wird in Snowpark unterstützt, erfordert aber möglicherweise einen manuellen Eingriff. Bitte lesen Sie in der Dokumentation nach, wie Sie den Code manuell ändern können, damit er in Snowpark funktioniert.
Kategorie: Warnung.
Beschreibung¶
Dieses Problem tritt auf, wenn SMA die Verwendung der Ein-Parameter-org.apache.spark.sql.functions.udf-Funktion im Code erkennt. Dann ist möglicherweise ein manueller Eingriff erforderlich.
Snowpark API bietet eine äquivalente com.snowflake.snowpark.functions.udf-Funktion, mit der Sie eine benutzerdefinierte Funktion aus einem Lambda oder einer Funktion in Scala erstellen können. Es gibt jedoch einige Beschränkungen bei der Erstellung von udf
in Snowpark, die es erforderlich machen können, dass Sie einige manuelle Änderungen an Ihrem Code vornehmen müssen, damit er richtig funktioniert.
Szenarien¶
Die Snowpark udf
-Funktion sollte in einer Vielzahl von Fällen wie vorgesehen funktionieren, ohne dass ein manuelles Eingreifen erforderlich ist. Es gibt jedoch einige Szenarien, in denen Sie Ihren Code manuell ändern müssen, damit er in Snowpark funktioniert. Einige dieser Szenarien sind unten aufgeführt:
Szenario 1¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die Erstellung von UDFs in einem Objekt mit der Eigenschaft „App Trait“.
Die Scala-App
-Eigenschaft vereinfacht die Erstellung ausführbarer Programme, indem sie eine main
-Methode bereitstellt, die den Code innerhalb der Objektdefinition automatisch ausführt. Die Erweiterung von App
verzögert die Initialisierung der Felder, bis die main
-Methode ausgeführt wird, was sich auf die UDFs-Definitionen auswirken kann, wenn diese auf initialisierten Feldern beruhen. Das bedeutet, dass, wenn ein App
-Objekt erweitert und die udf
ein Objektfeld referenziert, die udf
-Definition, die in Snowflake hochgeladen wird, den initialisierten Wert des Feldes nicht enthält. Dies kann dazu führen, dass null
Werte von der udf
zurückgegeben werden.
Im folgenden Code zum Beispiel wird die Variable myValue in der udf
-Definition zu null
aufgelöst:
object Main extends App {
...
val myValue = 10
val myUdf = udf((x: Int) => x + myValue) // myValue in the `udf` definition will resolve to null
...
}
Ausgabe
Die SMA fügt dem Ausgabecode das EWI SPRKSCL1174
hinzu, um Sie darauf hinzuweisen, dass die Ein-Parameter-udf
-Funktion in Snowpark unterstützt wird, aber einen manuellen Eingriff erfordert.
object Main extends App {
...
val myValue = 10
/*EWI: SPRKSCL1174 => The single-parameter udf function is supported in Snowpark but it might require manual intervention. Please check the documentation to learn how to manually modify the code to make it work in Snowpark.*/
val myUdf = udf((x: Int) => x + myValue) // myValue in the `udf` definition will resolve to null
...
}
Empfohlene Korrektur
Um dieses Problem zu vermeiden, empfiehlt es sich, App
nicht zu erweitern und eine eigene main
- Methode für Ihren Code zu implementieren. Dadurch wird sichergestellt, dass die Objektfelder initialisiert werden, bevor udf
-Definitionen erstellt und zu Snowflake hochgeladen werden.
object Main {
...
def main(args: Array[String]): Unit = {
val myValue = 10
val myUdf = udf((x: Int) => x + myValue)
}
...
}
Weitere Einzelheiten zu diesem Thema finden Sie unter Vorbehalt bei der Erstellung von UDFs in einem Objekt mit der Eigenschaft „App Trait“ .
Szenario 2¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die Erstellung von UDFs in Jupyter Notebooks.
def myFunc(s: String): String = {
...
}
val myFuncUdf = udf((x: String) => myFunc(x))
df1.select(myFuncUdf(col("name"))).show()
Ausgabe
Die SMA fügt dem Ausgabecode das EWI SPRKSCL1174
hinzu, um Sie darauf hinzuweisen, dass die Ein-Parameter-udf
-Funktion in Snowpark unterstützt wird, aber einen manuellen Eingriff erfordert.
def myFunc(s: String): String = {
...
}
/*EWI: SPRKSCL1174 => The single-parameter udf function is supported in Snowpark but it might require manual intervention. Please check the documentation to learn how to manually modify the code to make it work in Snowpark.*/
val myFuncUdf = udf((x: String) => myFunc(x))
df1.select(myFuncUdf(col("name"))).show()
Empfohlene Korrektur
Um eine udf
in einem Jupyter Notebook zu erstellen, sollten Sie die Implementierung Ihrer Funktion in einer Klasse definieren, die Serializable
erweitert. Sie sollten ihn zum Beispiel manuell in diesen umwandeln:
object ConvertedUdfFuncs extends Serializable {
def myFunc(s: String): String = {
...
}
val myFuncAsLambda = ((x: String) => ConvertedUdfFuncs.myFunc(x))
}
val myFuncUdf = udf(ConvertedUdfFuncs.myFuncAsLambda)
df1.select(myFuncUdf(col("name"))).show()
Weitere Einzelheiten zur Erstellung von UDFs in Jupyter Notebooks finden Sie unter Erstellen von UDFs in Jupyter Notebooks.
Zusätzliche Empfehlungen¶
Um mehr darüber zu erfahren, wie Sie in Snowpark benutzerdefinierte Funktionen erstellen können, lesen Sie bitte die folgende Dokumentation: Erstellen benutzerdefinierter Funktionen (UDFs) für DataFrames in Scala
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1000¶
Meldung: Die Spark-Core-Version des Quellprojekts ist _ version number _, die von Snowpark unterstützte Spark-Core-Version ist 2.12:3.1.2, so dass es funktionale Unterschiede zwischen den vorhandenen Zuordnungen geben kann
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Version des spark-core
erkennt, die von SMA nicht unterstützt wird. Daher kann es funktionale Unterschiede zwischen den vorhandenen Zuordnungen geben und die Ausgabe könnte ein unerwartetes Verhalten aufweisen.
Zusätzliche Empfehlungen¶
Die von SMA unterstützte Spark-Core-Version ist 2.12:3.1.2. Ziehen Sie in Erwägung, die Version Ihres Quellcodes zu ändern.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1140¶
Meldung: org.apache.spark.sql.functions.stddev hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.stddev-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.stddev
-Funktion, die zunächst mit einem Spaltennamen als Argument und dann mit einem Spaltenobjekt verwendet wird.
val df = Seq(
("Alice", 10),
("Bob", 15),
("Charlie", 20),
("David", 25),
).toDF("name", "score")
val result1 = df.select(stddev("score"))
val result2 = df.select(stddev(col("score")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1140
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(
("Alice", 10),
("Bob", 15),
("Charlie", 20),
("David", 25),
).toDF("name", "score")
/*EWI: SPRKSCL1140 => org.apache.spark.sql.functions.stddev has a workaround, see documentation for more info*/
val result1 = df.select(stddev("score"))
/*EWI: SPRKSCL1140 => org.apache.spark.sql.functions.stddev has a workaround, see documentation for more info*/
val result2 = df.select(stddev(col("score")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente stddev-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(
("Alice", 10),
("Bob", 15),
("Charlie", 20),
("David", 25),
).toDF("name", "score")
val result1 = df.select(stddev(col("score")))
val result2 = df.select(stddev(col("score")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1111¶
Bemerkung
Dieser Problemcode ist jetzt veraltet
Meldung: CreateDecimalType wird nicht unterstützt.
Kategorie: Konvertierungsfehler.
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.types.DataTypes.CreateDecimalType-Funktion feststellt.
Szenario¶
Eingabe
Im Folgenden finden Sie ein Beispiel für die Verwendung der org.apache.spark.sql.types.DataTypes.CreateDecimalType-Funktion.
var result = DataTypes.createDecimalType(18, 8)
Ausgabe
Die SMA fügt dem Ausgabecode das EWI SPRKSCL1111
hinzu, um Sie darauf hinzuweisen, dass die CreateDecimalType-Funktion von Snowpark nicht unterstützt wird.
/*EWI: SPRKSCL1111 => CreateDecimalType is not supported*/
var result = createDecimalType(18, 8)
Empfohlene Korrektur
Es gibt noch keine empfohlene Korrektur.
Meldung: Die Spark-Session-Builder-Option wird nicht unterstützt.
Kategorie: Konvertierungsfehler.
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.SparkSession.Builder.config-Funktion feststellt, die eine Option der Spark-Sitzung setzt und von Snowpark nicht unterstützt wird.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.SparkSession.Builder.config
-Funktion, mit der Sie eine Option in der Spark-Sitzung festlegen können.
val spark = SparkSession.builder()
.master("local")
.appName("testApp")
.config("spark.sql.broadcastTimeout", "3600")
.getOrCreate()
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1104
hinzu, um Sie darauf hinzuweisen, dass die config-Methode von Snowpark nicht unterstützt wird. In diesem Fall ist es nicht möglich, Optionen in der Spark-Sitzung über die config-Funktion einzustellen, was sich auf die Migration der Spark-Sitzungsanweisung auswirken kann.
val spark = Session.builder.configFile("connection.properties")
/*EWI: SPRKSCL1104 => SparkBuilder Option is not supported .config("spark.sql.broadcastTimeout", "3600")*/
.create()
Empfohlene Korrektur
Um die Sitzung zu erstellen, müssen Sie die richtige Snowflake Snowpark-Konfiguration hinzufügen.
In diesem Beispiel wird eine configs-Variable verwendet.
val configs = Map (
"URL" -> "https://<myAccount>.snowflakecomputing.com:<port>",
"USER" -> <myUserName>,
"PASSWORD" -> <myPassword>,
"ROLE" -> <myRole>,
"WAREHOUSE" -> <myWarehouse>,
"DB" -> <myDatabase>,
"SCHEMA" -> <mySchema>
)
val session = Session.builder.configs(configs).create
Außerdem wird die Verwendung einer configFile (profile.properties) mit den Verbindungsinformationen empfohlen:
## profile.properties file (a text file)
URL = https://<account_identifier>.snowflakecomputing.com
USER = <username>
PRIVATEKEY = <unencrypted_private_key_from_the_private_key_file>
ROLE = <role_name>
WAREHOUSE = <warehouse_name>
DB = <database_name>
SCHEMA = <schema_name>
Und mit der Session.builder.configFile
kann die Sitzung erstellt werden:
val session = Session.builder.configFile("/path/to/properties/file").create
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1101¶
Dieser Problemcode gilt als veraltet bereits seit Spark Conversion Core 2.3.22
Nachricht: Broadcast wird nicht unterstützt
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.broadcast-Funktion feststellt, die von Snowpark nicht unterstützt wird. Diese Funktion wird nicht unterstützt, da Snowflake keine Broadcast-Variablen unterstützt.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.functions.broadcast
-Funktion, mit der Sie ein Broadcast-Objekt erstellen, das auf jedem Spark-Cluster verwendet wird:
var studentData = Seq(
("James", "Orozco", "Science"),
("Andrea", "Larson", "Bussiness"),
)
var collegeData = Seq(
("Arts", 1),
("Bussiness", 2),
("Science", 3)
)
val dfStudent = studentData.toDF("FirstName", "LastName", "CollegeName")
val dfCollege = collegeData.toDF("CollegeName", "CollegeCode")
dfStudent.join(
broadcast(dfCollege),
Seq("CollegeName")
)
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1101
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht unterstützt wird.
var studentData = Seq(
("James", "Orozco", "Science"),
("Andrea", "Larson", "Bussiness"),
)
var collegeData = Seq(
("Arts", 1),
("Bussiness", 2),
("Science", 3)
)
val dfStudent = studentData.toDF("FirstName", "LastName", "CollegeName")
val dfCollege = collegeData.toDF("CollegeName", "CollegeCode")
dfStudent.join(
/*EWI: SPRKSCL1101 => Broadcast is not supported*/
broadcast(dfCollege),
Seq("CollegeName")
)
Empfohlene Korrektur
Da Snowflake den Speicher und die Workload auf den Clustern verwaltet, sind Broadcast-Objekte nicht anwendbar. Das bedeutet, dass der Einsatz von Broadcasting möglicherweise gar nicht erforderlich ist, aber jeder Fall sollte weiter analysiert werden.
Die empfohlene Vorgehensweise besteht darin, einen Spark-Datenframe durch einen regulären Snowpark-Datenframe zu ersetzen oder eine Datenframe-Methode wie Join zu verwenden.
Bei der vorgeschlagenen Eingabe besteht die Korrektur darin, die Verknüpfung so anzupassen, dass der collegeDF
-Datenframe direkt verwendet wird, ohne dass eine Übertragung für den Datenframe verwendet wird.
var studentData = Seq(
("James", "Orozco", "Science"),
("Andrea", "Larson", "Bussiness"),
)
var collegeData = Seq(
("Arts", 1),
("Bussiness", 2),
("Science", 3)
)
val dfStudent = studentData.toDF("FirstName", "LastName", "CollegeName")
val dfCollege = collegeData.toDF("CollegeName", "CollegeCode")
dfStudent.join(
dfCollege,
Seq("CollegeName")
).show()
Zusätzliche Empfehlungen¶
Das Snowflake Architekturhandbuch gibt Ihnen einen Einblick in die Snowflake-Speicherverwaltung.
Die Snowpark Datenframe-Referenz könnte bei der Anpassung eines bestimmten Übertragungsszenarios nützlich sein.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1150¶
Meldung: org.apache.spark.sql.functions.var_pop verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.var_pop–Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.var_pop
-Funktion, die zunächst mit einem Spaltennamen als Argument und dann mit einem Spaltenobjekt verwendet wird.
val df = Seq(
("A", 10.0),
("A", 20.0),
("A", 30.0),
("B", 40.0),
("B", 50.0),
("B", 60.0)
).toDF("group", "value")
val result1 = df.groupBy("group").agg(var_pop("value"))
val result2 = df.groupBy("group").agg(var_pop(col("value")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1150
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(
("A", 10.0),
("A", 20.0),
("A", 30.0),
("B", 40.0),
("B", 50.0),
("B", 60.0)
).toDF("group", "value")
/*EWI: SPRKSCL1150 => org.apache.spark.sql.functions.var_pop has a workaround, see documentation for more info*/
val result1 = df.groupBy("group").agg(var_pop("value"))
/*EWI: SPRKSCL1150 => org.apache.spark.sql.functions.var_pop has a workaround, see documentation for more info*/
val result2 = df.groupBy("group").agg(var_pop(col("value")))
Empfohlene Korrektur
Snowpark hat eine äquivalente var_pop-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(
("A", 10.0),
("A", 20.0),
("A", 30.0),
("B", 40.0),
("B", 50.0),
("B", 60.0)
).toDF("group", "value")
val result1 = df.groupBy("group").agg(var_pop(col("value")))
val result2 = df.groupBy("group").agg(var_pop(col("value")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
Beschreibung: >- Der Parameter der org.apache.spark.sql.DataFrameReader.option-Funktion ist nicht definiert.
SPRKSCL1164¶
Bemerkung
Dieser Problemcode ist jetzt veraltet
Meldung: Der Parameter ist nicht für org.apache.spark.sql.DataFrameReader.option definiert
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA feststellt, dass der Parameter von org.apache.spark.sql.DataFrameReader. option nicht definiert ist.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für einen nicht definierten Parameter für die org.apache.spark.sql.DataFrameReader.option
-Funktion.
spark.read.option("header", True).json(path)
Ausgabe
SMA fügt dem Ausgabecode das EWI SPRKSCL1164
hinzu, um Sie darauf hinzuweisen, dass der Parameter für die org.apache.spark.sql.DataFrameReader.option-Funktion nicht definiert ist.
/*EWI: SPRKSCL1164 => The parameter header=True is not supported for org.apache.spark.sql.DataFrameReader.option*/
spark.read.option("header", True).json(path)
Empfohlene Korrektur
Suchen Sie in der Snowpark-Dokumentation nach Reader-Format-Optionen hier, um die definierten Optionen zu identifizieren.
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1135¶
Warnung
Dieser Problemcode ist veraltet seit [Spark Conversion Core 4.3.2](../../../general/release-notes/README. md#spark-conversion-core-version-432)
Meldung: org.apache.spark.sql.functions.mean verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der Funktion org.apache.spark.sql.functions.mean feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.mean
-Funktion, die zunächst mit einem Spaltennamen als Argument und anschließend mit einem Spaltenobjekt verwendet wird.
val df = Seq(1, 3, 10, 1, 3).toDF("value")
val result1 = df.select(mean("value"))
val result2 = df.select(mean(col("value")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1135
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(1, 3, 10, 1, 3).toDF("value")
/*EWI: SPRKSCL1135 => org.apache.spark.sql.functions.mean has a workaround, see documentation for more info*/
val result1 = df.select(mean("value"))
/*EWI: SPRKSCL1135 => org.apache.spark.sql.functions.mean has a workaround, see documentation for more info*/
val result2 = df.select(mean(col("value")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente mean-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(1, 3, 10, 1, 3).toDF("value")
val result1 = df.select(mean(col("value")))
val result2 = df.select(mean(col("value")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1115¶
Warnung
Dieser Problemcode ist veraltet bereits seit Spark Conversion Core Version 4.6.0
Meldung: org.apache.spark.sql.functions.round verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.round-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend finden Sie ein Beispiel für die org.apache.spark.sql.functions.round
-Funktion, die diese EWI erzeugt.
val df = Seq(3.9876, 5.673, 8.1234).toDF("value")
val result1 = df.withColumn("rounded_value", round(col("value")))
val result2 = df.withColumn("rounded_value", round(col("value"), 2))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1115
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(3.9876, 5.673, 8.1234).toDF("value")
/*EWI: SPRKSCL1115 => org.apache.spark.sql.functions.round has a workaround, see documentation for more info*/
val result1 = df.withColumn("rounded_value", round(col("value")))
/*EWI: SPRKSCL1115 => org.apache.spark.sql.functions.round has a workaround, see documentation for more info*/
val result2 = df.withColumn("rounded_value", round(col("value"), 2))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente round-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Spaltenobjekt und eine Skala empfängt, können Sie die Skala in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.lit–Funktion als Problemumgehung verwenden.
val df = Seq(3.9876, 5.673, 8.1234).toDF("value")
val result1 = df.withColumn("rounded_value", round(col("value")))
val result2 = df.withColumn("rounded_value", round(col("value"), lit(2)))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1144¶
Meldung: Die Symboltabelle konnte nicht geladen werden
Kategorie: Parsing-Fehler
Beschreibung¶
Dieses Problem tritt auf, wenn ein kritischer Fehler bei der Ausführung von SMA auftritt. Da die Symboltabelle nicht geladen werden kann, kann SMA den Bewertungs- oder Konvertierungsprozess nicht starten.
Zusätzliche Empfehlungen¶
Es ist unwahrscheinlich, dass es sich um einen Fehler im Quellcode selbst handelt, sondern eher um einen Fehler bei der Verarbeitung des Quellcodes durch SMA. Die beste Lösung wäre, ein Problem in der SMA zu melden.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1170¶
Bemerkung
Dieser Problemcode ist jetzt veraltet
Meldung: sparkConfig member key wird nicht mit plattformspezifischem Schlüssel unterstützt.
Kategorie: Konvertierungsfehler
Beschreibung¶
Wenn Sie eine ältere Version verwenden, führen Sie ein Upgrade auf die neueste Version aus.
Zusätzliche Empfehlungen¶
Aktualisieren Sie Ihre Anwendung auf die neueste Version.
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1121¶
Meldung: org.apache.spark.sql.functions.atan verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.atan-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.atan
-Funktion, die zunächst mit einem Spaltennamen als Argument und anschließend mit einem Spaltenobjekt verwendet wird.
val df = Seq(1.0, 0.5, -1.0).toDF("value")
val result1 = df.withColumn("atan_value", atan("value"))
val result2 = df.withColumn("atan_value", atan(col("value")))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1121
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(1.0, 0.5, -1.0).toDF("value")
/*EWI: SPRKSCL1121 => org.apache.spark.sql.functions.atan has a workaround, see documentation for more info*/
val result1 = df.withColumn("atan_value", atan("value"))
/*EWI: SPRKSCL1121 => org.apache.spark.sql.functions.atan has a workaround, see documentation for more info*/
val result2 = df.withColumn("atan_value", atan(col("value")))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente atan-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(1.0, 0.5, -1.0).toDF("value")
val result1 = df.withColumn("atan_value", atan(col("value")))
val result2 = df.withColumn("atan_value", atan(col("value")))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1131¶
Meldung: org.apache.spark.sql.functions.grouping hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.grouping-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.grouping
-Funktion, die zunächst mit einem Spaltennamen als Argument und anschließend mit einem Spaltenobjekt verwendet wird.
val df = Seq(("Alice", 2), ("Bob", 5)).toDF("name", "age")
val result1 = df.cube("name").agg(grouping("name"), sum("age"))
val result2 = df.cube("name").agg(grouping(col("name")), sum("age"))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1131
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(("Alice", 2), ("Bob", 5)).toDF("name", "age")
/*EWI: SPRKSCL1131 => org.apache.spark.sql.functions.grouping has a workaround, see documentation for more info*/
val result1 = df.cube("name").agg(grouping("name"), sum("age"))
/*EWI: SPRKSCL1131 => org.apache.spark.sql.functions.grouping has a workaround, see documentation for more info*/
val result2 = df.cube("name").agg(grouping(col("name")), sum("age"))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente Funktion grouping-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq(("Alice", 2), ("Bob", 5)).toDF("name", "age")
val result1 = df.cube("name").agg(grouping(col("name")), sum("age"))
val result2 = df.cube("name").agg(grouping(col("name")), sum("age"))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1160¶
Bemerkung
Dieser Problemcode gilt als veraltet bereits seit Spark Conversion Core 4.1.0
Meldung: org.apache.spark.sql.functions.sum verfügt über eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.sum-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die Funktion org.apache.spark.sql.functions.sum
, die diese EWI erzeugt. In diesem Beispiel wird die sum
-Funktion verwendet, um die Summe der ausgewählten Spalte zu berechnen.
val df = Seq("1", "2", "3", "4", "5").toDF("elements")
val result1 = sum(col("elements"))
val result2 = sum("elements")
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1160
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq("1", "2", "3", "4", "5").toDF("elements")
/*EWI: SPRKSCL1160 => org.apache.spark.sql.functions.sum has a workaround, see documentation for more info*/
val result1 = sum(col("elements"))
/*EWI: SPRKSCL1160 => org.apache.spark.sql.functions.sum has a workaround, see documentation for more info*/
val result2 = sum("elements")
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente sum-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
val df = Seq("1", "2", "3", "4", "5").toDF("elements")
val result1 = sum(col("elements"))
val result2 = sum(col("elements"))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1154¶
Meldung: org.apache.spark.sql.functions.ceil hat eine Problemumgehung, siehe Dokumentation für weitere Informationen
Kategorie: Warnung
Beschreibung¶
Dieses Problem tritt auf, wenn SMA eine Verwendung der org.apache.spark.sql.functions.ceil-Funktion feststellt, für die es eine Problemumgehung gibt.
Szenario¶
Eingabe
Nachfolgend sehen Sie ein Beispiel für die org.apache.spark.sql.functions.ceil
-Funktion, die zunächst mit einem Spaltennamen als Argument, dann mit einem Spaltenobjekt und schließlich mit einem Spaltenobjekt und einer Skala verwendet wird.
val df = Seq(2.33, 3.88, 4.11, 5.99).toDF("value")
val result1 = df.withColumn("ceil", ceil("value"))
val result2 = df.withColumn("ceil", ceil(col("value")))
val result3 = df.withColumn("ceil", ceil(col("value"), lit(1)))
Ausgabe
Die SMA fügt dem Ausgabecode die EWI SPRKSCL1154
hinzu, um Sie darauf hinzuweisen, dass diese Funktion von Snowpark nicht vollständig unterstützt wird, aber es eine Problemumgehung gibt.
val df = Seq(2.33, 3.88, 4.11, 5.99).toDF("value")
/*EWI: SPRKSCL1154 => org.apache.spark.sql.functions.ceil has a workaround, see documentation for more info*/
val result1 = df.withColumn("ceil", ceil("value"))
/*EWI: SPRKSCL1154 => org.apache.spark.sql.functions.ceil has a workaround, see documentation for more info*/
val result2 = df.withColumn("ceil", ceil(col("value")))
/*EWI: SPRKSCL1154 => org.apache.spark.sql.functions.ceil has a workaround, see documentation for more info*/
val result3 = df.withColumn("ceil", ceil(col("value"), lit(1)))
Empfohlene Korrektur
Snowpark verfügt über eine äquivalente ceil-Funktion, die ein Spaltenobjekt als Argument erhält. Aus diesem Grund wird die Spark-Überladung, die ein Spaltenobjekt als Argument erhält, direkt von Snowpark unterstützt und erfordert keine Änderungen.
Für die Überladung, die ein Zeichenfolgenargument empfängt, können Sie die Zeichenfolge in ein Spaltenobjekt umwandeln, indem Sie die com.snowflake.snowpark.functions.col-Funktion als Problemumgehung verwenden.
Für die Überladung, die ein Spaltenobjekt und eine Skala empfängt, können Sie die callBuiltin-Funktion verwenden, um die Snowflake Builtin-CEIL-Funktion aufzurufen. Um sie zu verwenden, sollten Sie die „ceil“-Zeichenfolge als erstes Argument, die Spalte als zweites Argument und die Skala als drittes Argument übergeben.
val df = Seq(2.33, 3.88, 4.11, 5.99).toDF("value")
val result1 = df.withColumn("ceil", ceil(col("value")))
val result2 = df.withColumn("ceil", ceil(col("value")))
val result3 = df.withColumn("ceil", callBuiltin("ceil", col("value"), lit(1)))
Zusätzliche Empfehlungen¶
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.
SPRKSCL1105¶
Dieser Problemcode ist jetzt veraltet
Meldung: Der Wert des Writer-Formats wird nicht unterstützt.
Kategorie: Konvertierungsfehler
Beschreibung¶
Dieses Problem tritt auf, wenn org.apache.spark.sql.DataFrameWriter.format ein Argument hat, das von Snowpark nicht unterstützt wird.
Szenarien¶
Es gibt einige Szenarien, die von der Art des Formats abhängen, das Sie zu speichern versuchen. Es kann ein unterstütztes
oder nicht unterstütztes
Format sein.
Szenario 1¶
Eingabe
Das Tool analysiert den Typ des Formats, das Sie zu speichern versuchen. Die unterstützten Formate sind:
csv
json
orc
parquet
text
dfWrite.write.format("csv").save(path)
Ausgabe
Das Tool wandelt die format
-Methode in einen csv
-Methodeaufruf um, wenn die save-Funktion einen Parameter hat.
dfWrite.write.csv(path)
Empfohlene Korrektur
In diesem Fall zeigt das Tool die EWI nicht an, d. h. es ist keine Korrektur erforderlich.
Szenario 2¶
Eingabe
Das folgende Beispiel zeigt, wie das Tool die format
-Methode umwandelt, wenn ein net.snowflake.spark.snowflake
-Wert übergeben wird.
dfWrite.write.format("net.snowflake.spark.snowflake").save(path)
Ausgabe
Das Tool zeigt EWI SPRKSCL1105
an, was darauf hinweist, dass der net.snowflake.spark.snowflake
-Wert nicht unterstützt wird.
/*EWI: SPRKSCL1105 => Writer format value is not supported .format("net.snowflake.spark.snowflake")*/
dfWrite.write.format("net.snowflake.spark.snowflake").save(path)
Empfohlene Korrektur
Für die nicht unterstützten
Szenarien gibt es keine spezifische Korrektur, da es von den Dateien abhängt, die zu lesen versucht werden.
Szenario 3¶
Eingabe
Das folgende Beispiel zeigt, wie das Tool die format
-Methode umwandelt, wenn es eine csv
übergibt, aber stattdessen eine Variable verwendet.
val myFormat = "csv"
dfWrite.write.format(myFormat).save(path)
Ausgabe
Da das Tool den Wert der Variable zur Laufzeit nicht ermitteln kann, zeigt es die EWI SPRKSCL1163
an, die angibt, dass der Wert nicht unterstützt wird.
val myFormat = "csv"
/*EWI: SPRKSCL1163 => format_type is not a literal and can't be evaluated*/
dfWrite.write.format(myFormat).load(path)
Empfohlene Korrektur
Als Problemumgehung können Sie den Wert der Variablen überprüfen und ihn als Zeichenfolge zum Aufruf von Format
hinzufügen.
Zusätzliche Empfehlungen¶
Der Snowpark-Speicherort akzeptiert nur Cloud-Speicherorte, die einen Snowflake-Stagingbereich verwenden.
Die Dokumentation der von Snowpark unterstützten Methoden finden Sie in der Dokumentation
Wenn Sie weitere Unterstützung benötigen, können Sie uns eine E-Mail an sma-support@snowflake.com senden oder ein Problem im SMA melden.