[解決済み] expr() での lit() の使用について
2022-02-09 05:34:24
質問
線です。
df.withColumn("test", expr("concat(lon, lat)"))
は期待通りに動作しますが
df.withColumn("test", expr("concat(lon, lit(','), lat)"))
は次のような例外を生成します。
org.apache.spark.sql.AnalysisException: 未定義関数: 'lit'. この関数は、データベース 'default' に登録された一時的な関数でも恒久的な関数でもありません。 at org.apache.spark.sql.catalyst.analysis.Analyzer$LookupFunctions$$anonfun$apply$15$$anonfun$applyOrElse$49.apply(Analyzer.scala:1198)
なぜ?また、その回避策は何でしょうか?
解決方法は?
の文字列引数は
expr
は SQL 式としてパースされ、カラムを作成するために使用されます。そのため
lit
が有効なSQLコマンドでない場合、エラーが発生します。
lit
は、Sparkでリテラル値を新しいカラムに変換するために使用されます)。
これを解決するには、単純に
lit
の部分です。
df.withColumn("test", expr("concat(lon, ',', lat)"))
または、内蔵のSparkを使用する
concat
を使用せずに直接
expr
:
df.withColumn("test", concat($"lon", lit(","), $"lat"))
から
concat
列を引数にとる
lit
を使用する必要があります。
関連
-
[解決済み】Spark Exponential Moving Averageについて
-
[解決済み] Scala underscore - ERROR: 展開された関数のパラメータ型が見つかりません。
-
[解決済み] スパークSPLラウンド&ブラウンド
-
[解決済み] AWSのためのScala SDKまたはインターフェースはありますか?
-
[解決済み] Scalaで定数メンバを定義するには?
-
[解決済み] MapのmapValuesとtransformの違いについて
-
[解決済み】コマンドラインパラメータを解析する最良の方法?[クローズド]
-
[解決済み】Scala 2.8 breakOut
-
[解決済み】レイジーバルって何するもの?
-
[解決済み】Scalaの名前による呼び出しと値による呼び出し、明確化の必要性
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Scalaでステートメントの間にN秒待つには?
-
[解決済み] expr() での lit() の使用について
-
[解決済み] SparkSQL - パーケットファイルを直接読み込む
-
[解決済み] Scalaのオブジェクトとクラスの違い
-
[解決済み】Scalaの記号演算子にはどんな意味があるの?
-
[解決済み】タイプセーフのenum型をモデル化する方法は?
-
[解決済み】ScalaのHigher kinded typeとは何ですか?
-
[解決済み】Scalaの名前による呼び出しと値による呼び出し、明確化の必要性
-
[解決済み] Build.scala、%および%%の記号の意味
-
[解決済み] Scalaの==と.equalsの違いは何ですか?