scala—从databricks环境加载雪花数据时的意外行为

busg9geu  于 2021-05-18  发布在  Spark
关注(0)|答案(2)|浏览(428)

我只是尝试从雪花表加载数据,如下所示(在databricks env中使用spark/scala):

def loadDataFromSnowFlake(SfOptions: Map[String, String], query: String): DataFrame =
    spark.read
        .format("net.snowflake.spark.snowflake")
        .options(SfOptions)
        .option("query", query)
        .load()
    }

val SfOptions = ???
val query  = "SELECT * FROM databaseName.public.tableName LIMIT 10"
val testDf = loadDataFromSnowFlake(SfOptions, query)

testDf.show()
testDf.show()

问题是,脚本末尾的两个show()返回了两个不同的结果,我不明白当dataframe testdf声明为不可变时怎么可能。
我希望对此作出澄清。谢谢。干杯

kjthegm6

kjthegm61#

show()不能保证返回相同的输出。它只打印了20行。如果您下次调用show,可能会得到不同的输出。
我运行了几个测试用例,发现 show() 在同一Dataframe上打印相同的输出。

0lvr5msh

0lvr5msh2#

让我们尝试在雪花侧排序数据:

SELECT      * 
FROM        databaseName.public.tableName 
ORDER BY    <column_name> 
LIMIT       10

这可能是个问题。作为替代,您可以使用 display(testDf) 功能。python支持它,但我不确定scala。

相关问题