ArrowQuery.Interop
1.0.9
dotnet add package ArrowQuery.Interop --version 1.0.9
NuGet\Install-Package ArrowQuery.Interop -Version 1.0.9
<PackageReference Include="ArrowQuery.Interop" Version="1.0.9" />
<PackageVersion Include="ArrowQuery.Interop" Version="1.0.9" />
<PackageReference Include="ArrowQuery.Interop" />
paket add ArrowQuery.Interop --version 1.0.9
#r "nuget: ArrowQuery.Interop, 1.0.9"
#:package ArrowQuery.Interop@1.0.9
#addin nuget:?package=ArrowQuery.Interop&version=1.0.9
#tool nuget:?package=ArrowQuery.Interop&version=1.0.9
using System; using System.IO; using System.Collections.Generic; using Apache.Arrow; using Apache.Arrow.Ipc; using ArrowQuery.Interop; using Apache.Arrow.Types;
class Program { static void Main(string[] args) { // Create sample Arrow data in memory var idArray = new Int32Array.Builder().Append(1).Append(2).Append(3).Build(); var nameArray = new StringArray.Builder().Append("Alice").Append("Bob").Append("Carol").Build(); var cityArray = new StringArray.Builder().Append("New York").Append("Los Angeles").Append("Chicago").Build();
var fields1 = new List<Field>
{
new Field("id", Int32Type.Default, false),
new Field("name", StringType.Default, false)
};
var fields2 = new List<Field>
{
new Field("id", Int32Type.Default, false),
new Field("city", StringType.Default, false)
};
var schema1 = new Schema(fields1, new Dictionary<string, string>());
var schema2 = new Schema(fields2, new Dictionary<string, string>());
var recordBatch1 = new RecordBatch.Builder()
.Append("id", true, idArray)
.Append("name", true, nameArray)
.Build();
var recordBatch2 = new RecordBatch.Builder()
.Append("id", true, idArray)
.Append("city", true, cityArray)
.Build();
Apache.Arrow.Compression.CompressionCodecFactory factory = new Apache.Arrow.Compression.CompressionCodecFactory();
var options = new IpcOptions
{
CompressionCodec = CompressionCodecType.Zstd,
CompressionLevel = 3,
CompressionCodecFactory = factory,
};
// Serialize to Arrow IPC bytes
byte[] arrowBytes1;
using (var ms = new MemoryStream())
using (var writer = new ArrowStreamWriter(ms, schema1, false, options))
{
writer.WriteRecordBatchAsync(recordBatch1).GetAwaiter().GetResult();
writer.WriteEndAsync().GetAwaiter().GetResult();
arrowBytes1 = ms.ToArray();
}
byte[] arrowBytes2;
using (var ms = new MemoryStream())
using (var writer = new ArrowStreamWriter(ms, schema2, false, options))
{
writer.WriteRecordBatchAsync(recordBatch2).GetAwaiter().GetResult();
writer.WriteEndAsync().GetAwaiter().GetResult();
arrowBytes2 = ms.ToArray();
}
using (ArrowQuery.Interop.ArrowDatabase arrowDb = new ArrowDatabase())
{
arrowDb.AddTable(arrowBytes1, "batch1");
arrowDb.AddTable(arrowBytes2, "batch2");
string sql = "SELECT b1.*, b2.* FROM batch1 b1 join batch2 b2 ON b1.id=b2.id";
var json = arrowDb.Query(sql);
Console.WriteLine("Query Result (JSON):");
Console.WriteLine(json);
}
}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.