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

pyspark——執行動態框架行動語句存儲在字符串變量

dineshg
新的貢獻者二世

我需要執行動態聯盟聲明這是陷害並存儲在字符串變量。我陷害了聯合聲明,但與執行語句。有人知道如何執行聯合聲明存儲在字符串變量?我在磚使用pyspark筆記本。

df1 = df.filter((坳(vchDataSection) = =“AccountMasterInfo”) &(坳(bActive) = = 1))。withColumn (dfs, concat(點燃(“.union (df)、坳(“iRuleid”),點燃())))

df2 = df1.agg (concat_ws (" ", collect_list (col (dfs))))。withColumnRenamed (“concat_ws (, collect_list (dfs))”“AccInfoRules”) .withColumn (“replacestr”,點燃(" "))

df3 = df2.select(覆蓋(“AccInfoRules”、“replacestr”, 1、7) .alias(“功能”))

var_a = df3.collect ()

var_a = var_a [0] . __getitem__(功能)

var_b = var_a.replace (‘)’,”1)

打印(var_b)

o / p: df533.union (df534) .union (df535) .union (df536)

1接受解決方案

接受的解決方案

Shalabh007
尊敬的貢獻者

@Dineshkumar Gopalakrishnan使用python的exec()函數可以用來執行python語句,在你的情況中可以pyspark聯合聲明。請參考下麵的示例代碼片段,供您參考。

df1 = spark.sparkContext。並行化([(1、2、“1”、“2”、“3”),(1,3,(“4”、“1”、“5”、“6”)),(2,4,(“2”)),(2、5、[3])))。toDF([“商店”,“數”,“價值觀”)df2 = spark.sparkContext。並行化(((3 2 (“1”、“2”、“3”),(3 3 (“4”、“1”、“5”、“6”)),(4 4 (“2”)),(4、5、[3])))。toDF([“商店”,“數”,“價值觀”)union_statment =“df = df1.union (df2)“exec (union_statment)

上麵的代碼將執行pyspark聯盟df1 df2和api將結果分配給dataframe“df”。

你可以有更複雜的聯盟語句作為動態字符串的一部分

在原帖子查看解決方案

3回複3

Shalabh007
尊敬的貢獻者

@Dineshkumar Gopalakrishnan使用python的exec()函數可以用來執行python語句,在你的情況中可以pyspark聯合聲明。請參考下麵的示例代碼片段,供您參考。

df1 = spark.sparkContext。並行化([(1、2、“1”、“2”、“3”),(1,3,(“4”、“1”、“5”、“6”)),(2,4,(“2”)),(2、5、[3])))。toDF([“商店”,“數”,“價值觀”)df2 = spark.sparkContext。並行化(((3 2 (“1”、“2”、“3”),(3 3 (“4”、“1”、“5”、“6”)),(4 4 (“2”)),(4、5、[3])))。toDF([“商店”,“數”,“價值觀”)union_statment =“df = df1.union (df2)“exec (union_statment)

上麵的代碼將執行pyspark聯盟df1 df2和api將結果分配給dataframe“df”。

你可以有更複雜的聯盟語句作為動態字符串的一部分

dineshg
新的貢獻者二世

謝謝@Shalabh Agarwal以上解決方案為我工作。

Shalabh007
尊敬的貢獻者

神奇的@Dineshkumar葛

請點擊“選擇最佳”按鈕,如果你發現提供的信息幫助解決你的問題。

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

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

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

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

Baidu
map