取消
顯示的結果
而不是尋找
你的意思是:

試圖檢查是否一個列中存在dataframe如果不是,那麼我必須給零如果是的,那麼我需要給列本身使用UDF

cuteabhi32
新的貢獻者三世

從pyspark進口SparkContext

從pyspark進口SparkConf

從pyspark.sql。導入類型*

從pyspark.sql。功能導入*

從pyspark。sql進口*

從pyspark.sql。類型進口StringType

從pyspark.sql。功能導入udf

df1 = spark.read.format (csv) .option .load(“標題”、“true”)(“文件:/ / / home / cloudera /數據/ a.csv”)

坳def func_udf (df):

列=列表(df.columns)

如果在列(col):

返回df.col

其他:

返回NULL

func_udf spark.udf.register (“columncheck”)

resultdf = df1。withColumn (“ref_date”, expr(“當國旗= 3那麼其他‘06 may2022 columncheck (ref_date df1)結束”))

resultdf.show ()

這是代碼我試圖檢查是否一個列中存在dataframe如果不是,那麼我必須給零如果是的,那麼我需要給列本身通過使用UDF和UDF的投擲錯誤不知道我做錯了什麼。請幫助如何解決錯誤resultdf dataframe如下拋出錯誤

回溯(最近的電話):

文件“< stdin >”, 1號線,在<模塊>

文件“/ usr /地方/ / python / pyspark / sql / dataframe火花。在withColumn py”, 1849行

返回DataFrame (self._jdf。withColumn (colName col._jc)、self.sql_ctx)

文件“/ usr /本地/火花/ python / lib / py4j-0.10.7-src.zip / py4j / java_gateway。在__call__ py”, 1257行

文件“/ usr /地方/火花/ python / pyspark / sql /跑龍套。py”, 69行,在裝飾

提高AnalysisException (s。分割(':',1)[1],加亮)

pyspark.sql.utils。AnalysisException:“不能解決“df1”給定的輸入列:[ref_date、Salary_qtr4 Salary_qtr3,國旗,名字,Salary_qtr1,薪水,性病,Salary_qtr2, Id,意味著);1號線pos 53; \ n 'Project [Id # 10 # 11,工資# 12,當(cast(國旗# 20 int) = 3)然後其他06 may2022 columncheck (“df1 ref_date # 13)結束ref_date # 35, Salary_qtr1 # 14, Salary_qtr2 # 15日Salary_qtr3 # 16日Salary_qtr4 # 17日# 18,性病# 19,國旗# 20]\ n + - AnalysisBarrier \ n +關係

11日回複11

werners1
尊敬的貢獻者三世

所以讓我們保持它的簡單性:

df1 = spark.read.format (csv) .option .load(“標題”、“true”)(“文件:/ / / home / cloudera /數據/ a.csv”)如果df1“上校”。列:df2 =其他df1: df2 = df1。withColumn(“上校”,點燃(沒有).cast (TypeYouWant)

接下來你可以使用你的案子df2等等。

cuteabhi32
新的貢獻者三世

由於我按你的建議修改我的代碼,它完美的再次感謝你所有的輸入工作

dflist = spark.createDataFrame(列表(a.columns),“字符串”).toDF(“名稱”)

dfg = dflist.filter(坳(“名字”).isin (ref_date)) .count ()

如果dfg = = 1:

一個=。withColumn (ref_date, expr (f”情況下當國旗= 3 {sf_start_dt}其他ref_date結束”))

其他:

一個=。withColumn (ref_date, expr (f”情況下當國旗= 3 {sf_start_dt}結束”))

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map