1

我是使用 Databricks 的新手,我正在尝试测试将每小时文件连续加载到将用于报告的主文件的有效性。每个每小时文件大约 3-400gb,包含约 1-1.3b 条记录。我希望主表存储约 48 小时的数据,但我真的只需要 6 个小时的文件来完成我的数据视图。

我当前的过程如下,它似乎工作正常。csv 每小时文件存储在 Azure DataLake (Gen1) 上,主表使用 ADL Gen2 作为存储。这些是最好的选择吗?这个过程看起来不错还是我做错了什么?:)

csvdata = spark.read.format("csv").option("header","true").option("ignoreLeadingWhiteSpace","true").option("ignoreTrailingWhiteSpace","true").option("timestampFormat","yyyy-MM-dd HH:mm:ss.SSS").option("delimiter","|").option("inferSchema","true").option("mode","FAILFAST").csv("adl://pathToCsv").createOrReplaceTempView("tempdata").cache()

```sql Merge
MERGE INTO primaryTable
USING tempdata
ON primaryTable.UserGuid = tempdata.UserGuid AND primaryTable.OrgGuid = tempdata.OrgGuid
WHEN MATCHED AND cast(unix_timestamp(primaryTable.timestamp,'yyyy/MM/dd HH:mm:ss.SSS') AS timestamp) < cast(unix_timestamp(tempdata.timestamp,'yyyy/MM/dd HH:mm:ss.SSS') AS timestamp) THEN
  UPDATE SET *
WHEN NOT MATCHED
  THEN INSERT *
4

0 回答 0