如果HDFS中不存在目录,如何使用pyspark动态创建目录,并设置文件和目录权限

t3irkdon  于 2022-12-09  发布在  HDFS
关注(0)|答案(2)|浏览(292)

我是Hadoop新手,我们可以在Hadoop中动态创建目录吗?
目前我正在使用以下命令:

hadoop fs -mkdir -p /data/test1/test2/test3/

并使用以下命令设置文件权限:

hdfs dfs -chmod -R 777 /path /data/test1/test2/test3/t_bill_sheet.csv

动态地,我的意思是{年},并在它的文件夹内迭代的日期,如5,6,7等。

提前致谢

pgccezyw

pgccezyw1#

您可以定义一个bash变量(如果需要,也可以根据当前日期进行计算),然后反复使用它

YEAR=2000
MONTH=03
DAY=01
PATH="/data/$YEAR/$MONTH/$DAY"

hadoop fs -mkdir -p "$PATH"
hdfs dfs -chmod -R 777 /path "$PATH/t_bill_sheet.csv"
x4shl7ld

x4shl7ld2#

您可以在pyspark中使用exists()mkdirs(的组合方法来完成此操作,如下所示

fs = spark._jvm.org.apache.hadoop.fs.FileSystem.get(spark._jsc.hadoopConfiguration())

if not fs.exists(sc._jvm.org.apache.hadoop.fs.Path("path")): #returns true or false
    fs.mkdirs(spark._jvm.org.apache.hadoop.fs.Path("path"), FsPermission(777: Short) permission)

相关问题