Skip to content

Commit cf073e6

Browse files
author
Ryan Beauchamp
authored
fix: Update import logic to remove pyspark dependency from Snowflake Offline Store (feast-dev#3397)
* fix: move pyspark import inside relevant method Signed-off-by: Ryan Beauchamp <ryan.beauchamp@ezcater.com> * fix: put import inside type checking so that type hints works Signed-off-by: Ryan Beauchamp <ryan.beauchamp@ezcater.com> * fix: import future annotations Signed-off-by: Ryan Beauchamp <ryan.beauchamp@ezcater.com> * fix: annotate only the method signature Signed-off-by: Ryan Beauchamp <ryan.beauchamp@ezcater.com> Signed-off-by: Ryan Beauchamp <ryan.beauchamp@ezcater.com>
1 parent 2e57376 commit cf073e6

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

sdk/python/feast/infra/offline_stores/snowflake.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from functools import reduce
77
from pathlib import Path
88
from typing import (
9+
TYPE_CHECKING,
910
Any,
1011
Callable,
1112
ContextManager,
@@ -63,12 +64,8 @@
6364

6465
raise FeastExtrasDependencyImportError("snowflake", str(e))
6566

66-
try:
67+
if TYPE_CHECKING:
6768
from pyspark.sql import DataFrame, SparkSession
68-
except ImportError as e:
69-
from feast.errors import FeastExtrasDependencyImportError
70-
71-
raise FeastExtrasDependencyImportError("spark", str(e))
7269

7370
warnings.filterwarnings("ignore", category=DeprecationWarning)
7471

@@ -462,7 +459,7 @@ def to_sql(self) -> str:
462459
with self._query_generator() as query:
463460
return query
464461

465-
def to_spark_df(self, spark_session: SparkSession) -> DataFrame:
462+
def to_spark_df(self, spark_session: "SparkSession") -> "DataFrame":
466463
"""
467464
Method to convert snowflake query results to pyspark data frame.
468465
@@ -473,6 +470,13 @@ def to_spark_df(self, spark_session: SparkSession) -> DataFrame:
473470
spark_df: A pyspark dataframe.
474471
"""
475472

473+
try:
474+
from pyspark.sql import DataFrame, SparkSession
475+
except ImportError as e:
476+
from feast.errors import FeastExtrasDependencyImportError
477+
478+
raise FeastExtrasDependencyImportError("spark", str(e))
479+
476480
if isinstance(spark_session, SparkSession):
477481
with self._query_generator() as query:
478482

0 commit comments

Comments
 (0)