在ADLA中插入行时,如何在json / csv extracter中省略Text限定符?

时间:2017-05-17 14:46:23

标签: json csv azure-data-lake u-sql

我有一个csv / json类型的文件,并尝试插入ADLA中的表。 但是我的数据栏看起来像" Nike",它应该像耐克(没有引号)。

我尝试使用" 引用:true "但到目前为止,这并不允许滑动textqualifier,就像导入到sql server数据库一样。

Source File

示例代码

DECLARE @in  string = "/Samples/Data/UsqlTwo.csv";
DECLARE @out string = "/output/trckouttwo.csv";

 @CustData =
     EXTRACT CustomerUniqueID   int             ,
     CusLocationID              int             ,
     [PIM]                      int             ,
     AgeGender                  string          ,
     Mood                       string          ,
     StartDate                  DateTime        ,
     ImagePath                  string          ,
     EndDate                    DateTime        ,
     OutletName                 string          ,
     OutletStreet               string          ,
     OutletCity                 string          ,
     OutletState                string          ,
     OutletAreaCode             string          ,
     OutletCountry              string          ,
     Outletlandmark             string          ,
     OutletWeather              string          ,
     BrandName                  string          ,
     BrandStreet                string          ,
     BrandCity                  string          ,
     BrandState                 string          ,
     BrandAreaCode              string          ,
     BrandCountry               string          ,
     Brandlandmark              string          ,
     CamLocName                 string          ,
     CamAddress                 string          ,
     CamZone                    string          ,
     CamContactName             string          ,
     CamEmailID                 string          ,
     CamPhone                   string          ,
     CamNotloc                  string          ,
     CamNotZon                  string          ,
     CamNotContctName           string          ,
     CamNotPhone                string          ,
     CamNotEmailID              string          ,
     CamSMSNot                  string

     FROM @in
//     USING Extractors.Csv(skipFirstNRows:1);
USING Extractors.Csv(quoting:true);


@Branddetail= SELECT DISTINCT BrandName        

     FROM @CustData;



     INSERT INTO CLSTrackOMeter.dbo.Brand
(BrandId ,Name ,AddressId ,SuperAdminDetails )

SELECT 3 AS BrandId, BrandName,3 AS AddressId,"Admin" AS SuperAdminDetails FROM @Branddetail;

表格中的结果 enter image description here

预期结果应该没有引号

1 个答案:

答案 0 :(得分:1)

我认为您已输出文件而未在输出器中指定quoting : false。根据{{​​3}},默认值为true,因此除非您明确要求不使用字符串,否则系统会显示引号。

就表格中出现的报价而言,我无法重现您的问题。 quoting : true效果非常好,会删除文件中的引号。如果然后输出该文件(我认为你已经完成了,不按照你的脚本将其插入表中),只需指定quoting:false将从输出文件中删除引号,如下所示:

...
OUTPUT @output
TO "/output/output.csv"
USING Outputters.Csv(quoting:false);