Repository navigation
Expand file tree
/
Copy pathspark_session.py
More file actions
48 lines (44 loc) · 2.06 KB
/
Copy pathspark_session.py
File metadata and controls
48 lines (44 loc) · 2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import os
#main class to configure Apache Spark
os.environ["JAVA_HOME"] = r"C:\Program Files\Java\jdk-17"
os.environ["HADOOP_HOME"] = r"C:\hadoop"
os.environ["PATH"] = (
os.environ["JAVA_HOME"] + r"\bin;"
+ os.environ["HADOOP_HOME"] + r"\bin;"
+ os.environ["PATH"]
)
os.environ["PYSPARK_PYTHON"] = r"C:\Users\test\AppData\Local\Programs\Python\Python310\python.exe"
os.environ["PYSPARK_DRIVER_PYTHON"] = r"C:\Users\test\AppData\Local\Programs\Python\Python310\python.exe"
os.environ.pop("SPARK_HOME", None) # let pip's bundled pyspark use its own launcher
os.environ["SPARK_LOCAL_HOSTNAME"] = "localhost"
from pyspark.sql import SparkSession
_JAVA_OPTS = (
"--add-opens=java.base/java.lang=ALL-UNNAMED "
"--add-opens=java.base/java.lang.invoke=ALL-UNNAMED "
"--add-opens=java.base/java.lang.reflect=ALL-UNNAMED "
"--add-opens=java.base/java.io=ALL-UNNAMED "
"--add-opens=java.base/java.net=ALL-UNNAMED "
"--add-opens=java.base/java.nio=ALL-UNNAMED "
"--add-opens=java.base/java.util=ALL-UNNAMED "
"--add-opens=java.base/java.util.concurrent=ALL-UNNAMED "
"--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED "
"--add-opens=java.base/sun.nio.ch=ALL-UNNAMED "
"--add-opens=java.base/sun.nio.cs=ALL-UNNAMED "
"--add-opens=java.base/sun.security.action=ALL-UNNAMED "
"--add-opens=java.base/sun.util.calendar=ALL-UNNAMED"
)
from pyspark.sql import SparkSession
from delta import configure_spark_with_delta_pip
from delta.tables import DeltaTable
#call this method to create your Spark Instnace.
def get_spark(app_name="local-job"):
builder = (
SparkSession.builder
.appName(app_name)
.master("local[*]")
.config("spark.sql.extensions", "io.delta.sql.DeltaSparkSessionExtension")
.config("spark.sql.catalog.spark_catalog", "org.apache.spark.sql.delta.catalog.DeltaCatalog")
.config("spark.driver.extraJavaOptions", _JAVA_OPTS)
.enableHiveSupport() #This allows you to save tables using Hive Meta Store
)
return configure_spark_with_delta_pip(builder).getOrCreate()