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

庫可以用於單元測試的火花代碼?

alexott
價值貢獻
價值貢獻

我們需要為我們的代碼添加單元測試用例,我們編寫在Python中使用Scala。但是我們不能用電話的assertEqual比較DataFrames的內容。任何特殊的庫?

1回複1

alexott
價值貢獻
價值貢獻

有幾個Scala和Python庫,幫助為火花代碼編寫單元測試。

Scala可以使用以下:

  • 內置的火花測試套件,這是用來測試的火花。它支持抽樣,Dataframe /數據集,流api
  • spark-testing-base——支持Scala和Python。支持抽樣,Dataframe /數據集和流api。
  • spark-fast-tests——支持火花2 & 3,非常簡單,易於使用的API。容易結合——scalate

對於Python後你也可以使用(除了spark-testing-base)

  • chispa——Python spark-fast-tests港
  • pytest-spark——簡化了火花會話創建本地與pytest集成

為所有這些庫代碼示例可以發現一個地方

這是使用Chispa很小的例子:

從chispa進口進口pyspark.sql *。函數從pyspark F。sql進口SparkSession火花= SparkSession.builder.master(當地).appName (chispa) .getOrCreate () def remove_non_word_characters (col):返回F。regexp_replace(坳,“[^ \ \ w \ \ s] + ", " ") def test_removes_non_word_characters_short (): data = [(“jo&&se”、“何塞”)(“李* * * *”,“李”),(“#::路易莎”,“路易莎”),(不,沒有)]df =火花。createDataFrame(數據,[“名稱”、“expected_name”])。withColumn (clean_name remove_non_word_characters (F.col(“名字”)))assert_column_equality (df、“clean_name”、“expected_name”) def test_remove_non_word_characters_nice_error (): data = [(“matt7”,“馬特”)(“比爾”、“法案”)(“伊莎貝拉*”、“伊莎貝拉”),(不,沒有)]df =火花。createDataFrame(數據,[“名稱”、“expected_name”])。withColumn (clean_name remove_non_word_characters (F.col(“名字”)))assert_column_equality (df、“clean_name”、“expected_name”)

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

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

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

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

Baidu
map