получить существующий файл и добавить данные в существующий файл U-SQL

Как мы можем получить существующий файл и добавить в него данные с помощью скрипта u-sql.

`DECLARE @ file1 string =" dailyfiles / daily / LATESTMODIFIEDFILENAME.csv ";

DECLARE @out string = "/output/result.csv";

@data = ВЫБРАТЬ строку col1, строку col2, строку col3, строку col4 ИЗ @ file1, @ file2 ИСПОЛЬЗУЯ Extractors.Csv ();

ДОБАВЛЕНИЕ ДАННЫХ В СУЩЕСТВУЮЩИЙ КОД ФАЙЛА`


person steve    schedule 19.08.2019    source источник


Ответы (2)


У меня такая же проблема несколько дней назад. Это обходной путь, но он действительно помогает мне в моей реализации.

Я следую той же логике объединения данных, чтобы получить окончательный результат с обновленными значениями:

https://www.purplefrogsystems.com/paul/2016/12/writing-au-sql-merge-statement/

Надеюсь, это поможет вам!

person ptfaferreira    schedule 19.08.2019

Боюсь, что это не поддерживается в U-SQL, см. Эту ветку: Добавить данные в существующий файл в U-SQL. Вы можете проголосовать за этот отзыв ссылка, чтобы ускорить его выполнение.

Кроме того, в качестве обходного пути вы можете использовать ADLS Path-Update Rest api для реализации добавления.

Во-первых, вам нужно вызвать action=append, чтобы отправить его в буфер незафиксированных данных на сервере.

https://$STORAGE_ACCOUNT_NAME.dfs.core.windows.net/mydata/data/file1?action=append&position=0

После того, как вы получили 202 Accepted, вы можете вызвать action=flush и передать позицию, в которой вы хотите, чтобы данные были сброшены.

https://$STORAGE_ACCOUNT_NAME.dfs.core.windows.net/mydata/data/file1?action=flush&position=13

введите здесь описание изображения

person Jay Gong    schedule 19.08.2019
comment
: Можем ли мы получить последний измененный файл из папки ?? - person steve; 19.08.2019
comment
@steve Да, используйте MODIFIED: docs.microsoft .com / ru-ru / u-sql / functions / metadata / file / - person Jay Gong; 19.08.2019
comment
'не могли бы вы поделиться мне образцом кода ... Я пробовал, но у меня не работает. - person steve; 19.08.2019
comment
@steve Вы имеете в виду модифицированный метод? - person Jay Gong; 19.08.2019
comment
я пробовал вот так .. но не работал '@' data = EXTRACT ..., modified_date = FILE.MODIFIED (), created_date = FILE.CREATED () FROM /input/{*}.csv ИСПОЛЬЗУЯ Extractors.Csv (); '@' data = SELECT * FROM '@' data ГДЕ created_date ›DateTime.Now.AddDays (-1); - person steve; 19.08.2019