Dav*_*542 11 javascript webassembly apache-arrow dremio
我有存储在客户端浏览器内存中的数据。例如,假设数据集如下:
"name" (string), "age" (int32), "isAdult" (bool)
"Tom" , 29 1
"Tom" , 14 0
"Dina" , 20 1
Run Code Online (Sandbox Code Playgroud)
我想在javascript中对此数据运行非平凡的SQL语句,例如:
SELECT name, GROUP_CONCAT(age ORDER BY age) ages
FROM arrowData a1 JOIN arrowData a2 USING (name)
WHERE a1.isAdult != a2.isAdult
Run Code Online (Sandbox Code Playgroud)
我会得到:
"name" (string), "ages" (string)
"Tom" "14,29"
Run Code Online (Sandbox Code Playgroud)
我在javascript中拥有的数据存储为apache Arrow(也与Perspective结合使用),并且我也想对该apache Arrow数据执行SQL。作为最后的选择,我认为可以在wasm中使用sqllite,但是我希望可以有一种更简单的方法来直接查询Arrow数据,而不必将所有数据移到sqllite存储中来对它执行查询。
有什么方法可以做到这一点?
你可以使用Alasql来做一些你想做的事情,但它不支持分组。
var data = [
{
name: 'Tom',
age: 29,
isAdult: 1
},
{
name: 'Tom',
age: 14,
isAdult: 0
},
{
name: 'Dina',
age: 20,
isAdult: 1
}
];
var res = alasql('SELECT name, age from ? a1 JOIN ? a2 WHERE a1.isAdult != a2.isAdult AND a1.name = a2.name', [data, data]);
document.getElementById('result').textContent = JSON.stringify(res);Run Code Online (Sandbox Code Playgroud)
<script src="https://cdn.jsdelivr.net/alasql/0.2/alasql.min.js"></script>
<span id="result"></span>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
411 次 |
| 最近记录: |