新的跨平台应用
大型CSV文件的即时文件预览和验证
由于逗号不一定是CSV文件的分隔符,此应用可以自动检测其他分隔符,前提是每行的分隔符数量必须相同。应用会验证文件每个分区的第一行,将文件分为100个分区,因此您可以获得100个样本行保存到磁盘(屏幕上显示前20行)。在源代码中,有说明指导您如何将数字从100更改为1000。
下载链接:https://github.com/hkpeaks/peaks-consolidation/tree/main/Documents/PreviewFile
- main.go是Golang版本
- main.rs是Rust版本
- Peaks.py是Python版本
适用于文件、内存表和网络流的新查询语句
注意:使用"."来表示它是您定义的函数的成员是可选的。 第一行用于定义数据提取和数据加载。以下是3种可能的场景:
用户定义函数名 = from 提取 to 加载
或
用户定义函数名 = from 提取, 提取, 提取 to 加载
或
用户定义函数名 = from 提取 to 加载, 加载, 加载
您可以从第二行开始定义查询/数据转换函数。
示例:
ExpandFile = from Fact.csv to 1BillionRows.csv
.ExpandFactor: 123
JoinTable = from 1BillionRows.csv to Test1Results.csv
.Filter: Saleman(Mary,Peter,John)
.JoinTable: Product, Category => InnerJoin(Master.csv)
.AddColumn: Quantity, Unit_Price => Multiply(Amount)
.Filter: Amount(Float20000..29999)
.GroupBy: Saleman, Shop, Product => Count() Sum(Quantity) Sum(Amount)
.OrderBy: Saleman(A) Product(A) Date(D)
SplitFile = from Test1Results.csv to FolderLake
.CreateFolderLake: Shop
FilterFolder = from Outbox/FolderLake/S15/*.csv to Result-FilterFolderLake.csv
.Filter: Product(222..888) Style(=F)
ReadSample2View = from Outbox/Result-FilterFolderLake.csv to SampleTable
.ReadSample: StartPosition%(0) ByteLength(100000)
.View
命令列表
AddColumn{Column, Column => Math(NewColName)}
其中Math包括Add, Subtract, Multiply和Divide
BuildKeyValue{Column, Column ~ KeyValueTableName}
CurrentSetting{StreamMB(Number) Thread(Number)}
Distinct{Column, Column}
Filter{Column(CompareOperator Value) Column(CompareOperator Value)}
FilterUnmatch{Column(CompareOperator Value) Column(CompareOperator Value)}
其中比较运算符包括>,<,>=,<=,=,!=和范围,例如100..200
比较整数或浮点数,例如Float > Number, Float100..200
GroupBy{Column, Column => Count() Sum(Column) Max(Column) Min(Column)}
JoinKeyValue{Column, Column => JoinType(KeyValueTableName)}
其中JoinType包括AllMatch, Filter和FilterUnmatch
JoinTable{Column, Column => JoinType(KeyValueTableName)}
其中JoinType包括AllMatch和InnerJoin
OrderBy{PrimaryCol(Sorting Order) SecondaryCol(Sorting Order)}
OrderBy{SecondaryCol(Sorting Order) => CreateFolderLake(PrimaryCol) ~ FolderName或FileName.csv}
其中排序顺序用A或D表示,要对实数排序,使用FloatA或FloatD
Read{FileName.csv ~ TableName}
ReadSample{StartPosition%(Number) ByteLength(Number)}
ReadSample{Repeat(Number) ByteLength(Number)}
Select{Column, Column}
SelectUnmatch{Column, Column}
SplitFile{FileName.csv ~ NumberOfSplit}
CreateFolderLake{Column, Column ~ SplitFolderName}
View{TableName}
Write{TableName ~ FileName.csv或%ExpandBy100Time.csv}