有谁知道有什么工具可以使用类似 SQL 的声明性查询语言提供简单、快速的平面文件查询吗?我宁愿不支付将文件加载到数据库中的开销,因为输入数据通常在查询运行后几乎立即被丢弃。
考虑数据文件“animals.txt”:
dog 15
cat 20
dog 10
cat 30
dog 5
cat 40
假设我想提取每种独特动物的最高值。我想写一些类似的东西:
cat animals.txt | foo "select $1, max(convert($2 using decimal)) group by $1"
我可以使用几乎相同的结果sort
:
cat animals.txt | sort -t " " -k1,1 -k2,2nr
我总是可以投入awk
从那里开始,但这一切感觉有点awk
当类似 SQL 的语言似乎能够如此干净利落地解决问题时,我很惊讶(无法抗拒)。
我考虑过为 SQLite 编写一个包装器,它会根据输入数据自动创建一个表,并且我已经研究过在单处理器模式下使用 Hive,但我不禁觉得这个问题以前已经解决了。我错过了什么吗?此功能是否已由其他标准工具实现?
Halp!
I wrote TxtSushi http://keithsheppard.name/txt-sushi/主要是对平面文件进行 SQL 选择。以下是示例的命令链(所有这些命令均来自 TxtSushi):
tabtocsv animals.txt | namecolumns - | tssql -table animals - \
'select col1, max(as_int(col2)) from animals group by col1'
namecolumns 是必需的,因为 Animals.txt 没有标题行。通过查看以下内容,您可以快速了解可能发生的情况示例脚本 http://patch-tag.com/r/keithshep/txt-sushi/snapshot/current/content/pretty/examples。主页底部还有类似工具的链接。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)