我有Azure集群设置,它从Azure数据湖中的文本文件中创建一个表。然后,我有另一个表,它是基于上面提到的第一个表的SQL语句。我更新了Data-Lake中的文本文件,并针对第一个表运行了一个刷新表,这样就可以从文本文件中看到更改的信息。然后,我对第二个表运行refresh表,当我查询这个表时,它并不反映文本文件中的更改。下面是我所拥有的笔记本中每个单元格的具体信息。
下面是创建指向文本文件的表的单元格
%sql
Create Table If Not Exists Raw.ReferenceTables
Using TEXT
Location "/mnt/adls/Raw/SAP/sd13.txt"下面是创建指向上面Raw.ReferenceTables表的表的单元格
%sql
Create Table If Not Exists Raw.CostCenter
as
Select ltrim(rtrim(substring(value, 9, 6))) CostCenterId,
ltrim(rtrim(substring(value, 15, 30))) CostCenterDescription,
ltrim(rtrim(SubString(value, 45, 1))) CostCenterCategory,
ltrim(rtrim(SubString(value, 51, 5))) ProfitCenterID,
ltrim(rtrim(SubString(value, 56, 15))) StdHierarchy,
ltrim(rtrim(substring(value, 71, 4))) CompanyId
From Raw.ReferenceTables
Where substring(value,2 ,3) = '048'
AND substring(value, 1 ,1) = 'D'
AND substring(value, 5 ,4) <> 'SC-1'所以现在,当我第一次查询Raw.CostCenter时,一切看起来都很好。
%sql
Select * From Raw.CostCenter然后,我更新了DataLake中的txt文件,并针对Raw.ReferenceTables和Raw.CostCenter表运行刷新表。
%sql
Refresh Table Raw.ReferenceTables
%sql
Refresh Table Raw.CostCenter当我查询Raw.ReferenceTables时,我可以看到更新的信息,但是当我查询Raw.CostCenter表时,我没有看到任何更改。我尝试只使用定义Raw.CostCenter的查询并运行它,它也会返回我所期望的结果。
如果我删除Raw.CostCenter表,然后再次创建它,那么它将显示正确的更新信息。
如果我错过了一些基本的东西,我会提前道歉,因为这是我第一次拥有用户数据库。这看起来很直截了当,但我只是不明白我在这里错过了什么。谢谢。
我按照下面的注释之一对Raw.CostCenter表进行了描述,这是结果
CostCenterId string null
CostCenterDescription string null
CostCenterCategory string null
ProfitCenterID string null
StdHierarchy string null
CompanyId string null
# Detailed Table Information
Database raw
Table costcenter
Owner root
Created Time Wed Oct 31 20:35:50 UTC 2018
Last Access Thu Jan 01 00:00:00 UTC 1970
Created By Spark 2.3.0
Type MANAGED
Provider parquet
Table Properties [transient_lastDdlTime=1541018150]
Location dbfs:/user/hive/warehouse/raw.db/costcenter
Serde Library org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe
InputFormat org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat
OutputFormat
org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat
Storage Properties [serialization.format=1] 但我看不出这对我如何更新表格有什么帮助。
https://stackoverflow.com/questions/53107232
复制相似问题