Получение ошибки с базовой функцией trim () в скрипте U-SQL - PullRequest
1 голос
/ 31 мая 2019

Я хочу применить функцию .trim () к столбцу, но получаю сообщение об ошибке.Примеры данных: Product_ID, Product_Name 1, Канцелярские товары 2, Личная гигиена

Я должен выполнить некоторые манипуляции с данными, но не могу правильно настроить базовую функцию trim ().

@productlog =   
EXTRACT Product_ID string,
    Prduct_Name string
FROM "/Staging/Products.csv"
USING Extractors.Csv();
@output = Select Product_ID, Product_Name.trim() from @productlog;
OUTPUT @output  
TO "/Output/Products.csv"
USING Outputters.Csv();

Ошибка: Ошибка U-SQL1: ошибка Id: E_CSC_USER_SYNTAXERROR, сообщение об ошибке: синтаксическая ошибка.Ожидается одно из: '.'ВСЕ ANTISEMIJOIN КАК НАЧАТЬ ЛЮБОЙ BROADCASTLEFT BROADCASTRIGHT Перекрестной DISTINCT КРОМЕ ПОЛНОГО FULLCROSS GROUP HASH HAVING INDEXLOOKUP ВНУТРЕННЕЙ INTERSECT РЕГИСТРИРУЙТЕСЬ ЛЕВЫЙ LOOP Объединить OPTION ORDER КОСМИЧЕСКОГО КОСМИЧЕСКОГО UNION PAIR PIVOT READONLY ПРОДУКТ сортировать почту перед отправкой на почтамт REQUIRED RIGHT ОБРАЗЦА SEMIJOIN SERIAL равномерного UNION ВСЕЛЕННАЯ UNPIVOT С ПОМОЩЬЮ где при ';''(' ')' ','.

Ответы [ 2 ]

1 голос
/ 31 мая 2019

Попробуйте нижеприведенное, афаик вам нужно, чтобы псевдоним обрезал поля

@productlog =   
EXTRACT Product_ID string,
    Prduct_Name string
FROM "/Staging/Products.csv"
USING Extractors.Csv();
@output = Select Product_ID, Product_Name.trim() as Trimmed_Product_Name from @productlog;
OUTPUT @output  
TO "/Output/Products.csv"
USING Outputters.Csv();
0 голосов
/ 31 мая 2019

Наконец-то все правильно, на случай, если кто-то еще столкнется с той же проблемой. U-SQL больше похож на C #, поэтому для таких людей, как я, будет немного сложнее, если исходить из чисто SQL-фона.

Код:

@productlog =   
EXTRACT Product_ID string,
    Prduct_Name string
FROM "/Staging/Products.csv"
USING Extractors.Csv();

@output =
        SELECT 
            T.Product_ID,
            T.Prduct_Name.ToUpper().Trim() AS Prduct_Name
        FROM @productlog AS T;

OUTPUT @output  
TO "/Output/Products.csv"
USING Outputters.Csv();
...