Musím běžet dva moduly ve Vzduchu s dvěma úkoly. Každý úkol má PySpark modul, který má několik zapalovací operace. Druhý modul se používá datový rámec vytvořený v předchozí relaci, a pokračuje ve své činnosti.
Jak můžeme dosáhnout stejného se stejným SparkSession
inicializuje? Snažil jsem se s getActiveSession()
, ale to nefungovalo, protože úkol 1 úkol je dokončen, a proto, když úkol 2 je běh, nové zapalovací relace je vytvořen.
- [root@ ..dags]# cat tmp_spark_1.py
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("PRJT").enableHiveSupport().getOrCreate()
df = spark.createDataFrame([(1, 2), (3, 4)], ['a', 'b'])
df.show()
- [root@ ..dags]# cat tmp_spark_2.py
from pyspark.sql import SparkSession
#spark = SparkSession.builder.appName("PRJT").enableHiveSupport().getActiveSession().getOrCreate()
spark = SparkSession.getActiveSession()
df1 = df.select(df['a'])
df1.show()