有人能解释一下spark中的sc._jvm和sc._jsc是什么吗?这两个在spark中的用途是什么?

von4xj4u  于 2022-11-07  发布在  Spark
关注(0)|答案(1)|浏览(322)

我在spark中使用Python,下面的代码是做什么的?

jvm = sc._jvm
jsc = sc._jsc
fs = jvm.org.apache.hadoop.fs.FileSystem.get(jsc.hadoopConfiguration())
if fs.exists(jvm.org.apache.hadoop.fs.Path(loc+"_SUCCESS")):
    df=spark.read.parquet(loc)
    df.write.mode("overwrite").parquet(hdfs_bkp_loc)
else:
pn9klfpd

pn9klfpd1#

由于Spark是用基于JVM的语言Scala编写的,PySpark有一个在后台运行的JVM来实际运行spark代码。sc._jvm是进入JVM的网关,sc._jsc是Java Spark上下文,它是进入JVM中SparkContext的代理。
您发布的代码片段基本上调用了一些Java函数来检查某个路径是否存在,然后从那里读取一些数据并将其写入另一个位置。
不建议使用这些_jsc成员,而且很少需要它们。

相关问题