在 Palantir Foundry 中,我应该如何在 Transform 中获取当前的 SparkSession?

In Palantir Foundry, how should I get the current SparkSession in a Transform?

我正在编写一个 Python 转换并且需要获取 SparkSession 以便我可以构建一个 DataFrame。

我应该怎么做?

您可以将 SparkContext 作为参数传递到转换中,然后可用于生成 SparkSession。

@transform(
    output=Output('/path/to/first/output/dataset'),
)
def my_compute_function(ctx, output):
    # type: (TransformContext, TransformOutput) -> None

    # In this example, the Spark session is used to create an empty data frame.
    columns = [
        StructField("col_a", StringType(), True)
    ]
    empty_df = ctx.spark_session.createDataFrame([], schema=StructType(columns))

    output.write_dataframe(empty_df)

此示例也可以在此处的 Foundry 文档中找到:https://www.palantir.com/docs/foundry/transforms-python/transforms-python-api/#transform