我基本上是在尋找一種在 EMR 中進行基于 Spark 的 scala 開發的方法。所以我在 hadoop 集群上有幾個專案檔案:
// mypackage.scala
package mypackage
<Spark-dependent scala code>
// subpackage.scala
package mypackage.subpackage
def myfunc(x: String) {
...
}
<more Spark-dependent scala code>
我希望能夠即時編輯這些腳本,然后將更改匯入到我的 EMR 筆記本中。
// EMR_notebook.ipynb
import mypackage.subpackage.myfunc
val output = myfunc('foo')
我明白那個
- 您通常必須先用 sbt 編譯 scala 代碼,然后才能使用它,并且
- 將修改后的 Scala 代碼匯入 EMR 筆記本的最佳方法是通過 jarfile,即
%%configure -f
{
"jars": ["s3://path_to_myproject_jarfile.jar"]
}
但這意味著要除錯我的包,我必須修改腳本 mypackage.scala 和 subpackage.scala,然后用 sbt 編譯,然后上傳到 s3,然后重新啟動 Spark 內核,以便我可以重新匯入 jarfile,并且只有這樣我才能重新運行我的代碼并查看任何更改的效果。所以我希望有一種更有效的方法來處理這種情況。
對任何歧義/scala 文盲表示歉意。謝謝!
uj5u.com熱心網友回復:
是的,你是對的。這也是我知道的唯一方法。但這正是他們擁有 spark-shell 的原因,如果您使用 Databricks 之類的東西,甚至登錄到 emr,請打開 spark-shell 并運行您的位來檢查那里。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/312801.html
