簡體   English   中英

EMR無法運行python 3.x

[英]EMR fails to run python 3.x

我在EMR中添加了一個步驟來運行pyspark作業。 但是我最終得到錯誤

TypeError: makedirs() got an unexpected keyword argument 'exist_ok'

這使我懷疑正在運行EMR默認版本python2.7。 我使用的ami版本是5.25.0,這是相當新的,根據文檔,應該已經安裝了3.6。

#!/usr/bin/env python3.6

我添加了shebang以提供可執行文件。 還有別的嗎?

沒錯 python的系統默認版本是2.7,但也有帶有python3命令的pythoh3.x。 您可以按照以下文檔進行更改。

如何配置Amazon EMR以使用Python 3.4或3.6運行PySpark作業?

基本上,在正在運行的集群上鍵入以下命令

sudo sed -i -e '$a\export PYSPARK_PYTHON=/usr/bin/python3' /etc/spark/conf/spark-env.sh

或在創建群集時設置配置,例如

[
  {
     "Classification": "spark-env",
     "Configurations": [
       {
         "Classification": "export",
         "Properties": {
            "PYSPARK_PYTHON": "/usr/bin/python3"
          }
       }
    ]
  }
]

那確實是解決方案,但是值得一提的是,我正在使用數據管道來運行集群。 要提供此配置, 如果您選擇在Architect中進行編輯而不是提供json配置,則需要在下面的資源部分中創建一個配置對象。 在此處輸入圖片說明

您在此處創建的配置將級聯導出配置。 見下文。 在此處輸入圖片說明

該屬性將僅僅是“ PYSPARK_PYTHON”:“ / usr / bin / python3”作為鍵和值 在此處輸入圖片說明

在您的emr控制台中,然后應將配置對象顯示為

spark-env.export

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM