我在Azure Data Lake Store中有数据,我正在使用U-SQL处理Azure Data Analytic Job中存在的数据。我有包含空间数据的几个CSV文件,与此类似:U-SQL根据文件中的Distinct值将CSV文件拆分为多个文件
File_20170301.csv
longtitude| lattitude | date | hour | value1
----------+-----------+--------------+------+-------
45.121 | 21.123 | 2017-03-01 | 01 | 20
45.121 | 21.123 | 2017-03-01 | 02 | 10
45.121 | 21.123 | 2017-03-01 | 03 | 50
48.121 | 35.123 | 2017-03-01 | 01 | 60
48.121 | 35.123 | 2017-03-01 | 02 | 15
48.121 | 35.123 | 2017-03-01 | 03 | 80
File_20170302.csv
longtitude| lattitude | date | hour | value1
----------+-----------+--------------+------+-------
45.121 | 21.123 | 2017-03-02 | 01 | 20
45.121 | 21.123 | 2017-03-02 | 02 | 10
45.121 | 21.123 | 2017-03-02 | 03 | 50
48.121 | 35.123 | 2017-03-02 | 01 | 60
48.121 | 35.123 | 2017-03-02 | 02 | 15
48.121 | 35.123 | 2017-03-02 | 03 | 80
每个文件包含的数据不同的日期和所有经度 - 组合。
我想合并我所有的文件并拆分数据,这样我就可以为每个经度 - 折点组合结束一个文件。
所以,通过我的文件夹中的所有文件循环和附加的所有数据全部天后,我将结束与以下:
File_45_21.csv
longtitude| lattitude | date | hour | value1
----------+-----------+--------------+------+-------
45.121 | 21.123 | 2017-03-01 | 01 | 20
45.121 | 21.123 | 2017-03-01 | 02 | 10
45.121 | 21.123 | 2017-03-01 | 03 | 50
45.121 | 21.123 | 2017-03-02 | 01 | 20
45.121 | 21.123 | 2017-03-02 | 02 | 10
45.121 | 21.123 | 2017-03-02 | 03 | 50
File_48_35.csv
longtitude| lattitude | date | hour | value1
----------+-----------+--------------+------+-------
48.121 | 35.123 | 2017-03-01 | 01 | 60
48.121 | 35.123 | 2017-03-01 | 02 | 15
48.121 | 35.123 | 2017-03-01 | 03 | 80
48.121 | 35.123 | 2017-03-02 | 01 | 60
48.121 | 35.123 | 2017-03-02 | 02 | 15
48.121 | 35.123 | 2017-03-02 | 03 | 80
理论上下面应该发生:
- 查找数据中的经度和纬度组合的不同值
- 取上述不同值的数组,并为每个组合创建一个文件,并根据两个参数从源文件中提取数据(长度和012)
我正在努力的是如何开始循环和基于源中的两个参数提取数据,以及如何通过组合的不同值对数据源进行“分区”的参数。
嗨@MichaelRys,你看到上面的动态方法的一些问题?它可以改进还是一个坏主意?任何意见感激地收到:) – wBob
虽然我还没有运行它,它看起来没问题。出于性能原因,我可能已合并了文件名创建和动态U-SQL创建。你基本上使用上面提到的使用U-SQL方法编写的U-SQL方法。 –
我只是想知道,如果这是一个好主意,采取数据库目录中的数据,分区并写入导出到CSV文件。这会是一个可行的解决方案吗? USQL仍可用于导入表中的数据并将数据导出到csv。 – FeodorG