[解決済み] TypeError: 'Column' オブジェクトは WithColumn を使用して呼び出すことができません。
2022-03-07 04:36:13
質問
データフレーム(df)に新しいカラムを追加したいのですが、関数
get_distance
:
def get_distance(x, y):
dfDistPerc = hiveContext.sql("select column3 as column3, \
from tab \
where column1 = '" + x + "' \
and column2 = " + y + " \
limit 1")
result = dfDistPerc.select("column3").take(1)
return result
df = df.withColumn(
"distance",
lit(get_distance(df["column1"], df["column2"]))
)
でも、こうなるんです。
TypeError: 'Column' object is not callable
xとyがあるから起こるのだと思います。
Column
オブジェクトに変換される必要があり、私は
String
をクエリで使用することができます。正しいですか?もしそうなら、どうすればいいのでしょうか?
どのように解決するのですか?
Sparkは、使用している関数が通常の関数ではなく、UDFであることを知っている必要があります。
つまり、データフレームでUDFを使うには、2つの方法があるのです。
方法-1: @udfアノテーションを使用する
@udf
def get_distance(x, y):
dfDistPerc = hiveContext.sql("select column3 as column3, \
from tab \
where column1 = '" + x + "' \
and column2 = " + y + " \
limit 1")
result = dfDistPerc.select("column3").take(1)
return result
df = df.withColumn(
"distance",
lit(get_distance(df["column1"], df["column2"]))
)
方法-2: pyspark.sql.functions.udf を使用して udf を再定義します。
def get_distance(x, y):
dfDistPerc = hiveContext.sql("select column3 as column3, \
from tab \
where column1 = '" + x + "' \
and column2 = " + y + " \
limit 1")
result = dfDistPerc.select("column3").take(1)
return result
calculate_distance_udf = udf(get_distance, IntegerType())
df = df.withColumn(
"distance",
lit(calculate_distance_udf(df["column1"], df["column2"]))
)
関連
-
[解決済み] SparkでcreateOrReplaceTempViewはどのように動作するのですか?
-
[解決済み] format("kafka") で "Failed to find data source: kafka." とエラーになるのはなぜですか?(uber-jarを使用しても)失敗しますか?
-
[解決済み] Spark: 2つのDataFrameを減算する
-
[解決済み] sparkでsaveAsTextFileするときのファイル名の付け方は?
-
[解決済み] Sparkのバージョンを確認する方法【終了しました
-
[解決済み] プロパティspark.yarn.jars - どのようにそれに対処するのですか?
-
[解決済み] Spark - repartition() vs coalesce()
-
[解決済み】mapとflatMapの違いと、それぞれの良い使用例について教えてください。
-
[解決済み】Spark Dataframeで列の内容をすべて表示するにはどうすればよいですか?
-
[解決済み】SparkコンソールにINFOメッセージを表示させないようにするには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] spark.sql.autoBroadcastJoinThresholdは、Datasetの結合演算子を使用して結合するために動作しますか?
-
[解決済み] SparkでcreateOrReplaceTempViewはどのように動作するのですか?
-
[解決済み] Spark コンテキスト 'sc' が定義されていない
-
[解決済み] Spark が "java.net.URISyntaxException" を報告するのはなぜですか?DataFrameを使用する際に「java.net.URIStyntaxException: Relative path in absolute URI」と表示されるのはなぜですか?
-
[解決済み] Spark: 2つのDataFrameを減算する
-
[解決済み] sparkでsaveAsTextFileするときのファイル名の付け方は?
-
[解決済み] spark.yarn.executor.memoryOverhead "の設定値?
-
[解決済み] 実行中のSparkアプリケーションを終了させるには?
-
[解決済み] TypeError: 'Column' オブジェクトは WithColumn を使用して呼び出すことができません。
-
[解決済み] Spark - repartition() vs coalesce()