如何更改 SparkContext.sparkUser() 设置(在 pyspark 中)?

How can I change SparkContext.sparkUser() setting (in pyspark)?

我是 Sparkpyspark 的新手。
我使用 pyspark,在我的 rdd 处理之后,我尝试使用 saveAsTextfile() 函数将它保存到 hdfs。 但是我收到一条“permission denied”错误消息,因为 pyspark 试图写入 hdfs 使用我的本地帐户 'kjlee',它在 hdfs 系统上不存在。

我可以通过SparkContext().sparkUser()查看spark用户名,但是我找不到如何更改spark用户名。

如何更改spark用户名?

这里有一个环境变量:HADOOP_USER_NAME 所以只需使用 export HADOOP_USER_NAME=anyuser 或者在 pyspark 中你可以使用 os.environ["HADOOP_USER_NAME"] = "anyuser"

在 Scala 中可以用 System.setProperty:

  System.setProperty("HADOOP_USER_NAME","newUserName")

  val spark = SparkSession
    .builder()
    .appName("SparkSessionApp")
    .master("local[*]")
    .getOrCreate()

  println(spark.sparkContext.sparkUser)