script para ejemplos datos crear sql f# deedle

para - F#: Cómo crear un marco de Deedle con fuente de datos SQL



script de base de datos sql ejemplos (1)

Estoy tratando de averiguar cuál es la mejor manera en F # para crear un Marco de Deedle, cuando los datos provienen de un servidor SQL. He intentado cosas como las siguientes.

#I "../packages/Deedle.0.9.12" #load "Deedle.fsx" #r "System.dll" #r "System.Data.dll" #r "System.Data.Linq" #r "FSharp.Data.TypeProviders.dll" open System open System.Data open System.Data.Linq open Microsoft.FSharp.Data.TypeProviders open Deedle type dbSchema = SqlDataConnection<"Data Source=server;Initial Catalog=database;Integrated Security=SSPI;"> let db = dbSchema.GetDataContext() let fr = db.SomeTable |> Frame.ofRows

y algunas otras variantes. Pero sin suerte. Soy nuevo en F # y Deedle para el caso. Puedo ver por qué lo anterior no funciona (Frame.ofRows no es compatible con el argumento) pero no sé cuál es la mejor manera de proceder (o incluso cómo proceder).


La función Frame.ofRows espera una secuencia de series que representan filas individuales del marco. De forma similar a Frame.ofColumns , esta función es útil si ya tiene algunos objetos en serie (o si está creando todo desde cero). Toman entrada de tipo seq<''TRowKey * ISeries<''TColKey>> .

Cuando crea el marco de Deedle a partir de una estructura de datos .NET, puede usar Frame.ofRecords que funcionará en cualquier secuencia y usará reflection para obtener los nombres de las propiedades (y los tratará como nombres de columna).

Una explicación larga, pero solo algunos caracteres cambian en tu código :-). Lo probé con Northwind:

type Nwind = SqlDataConnection<"""Data Source=./SQLExpress; Initial Catalog=Northwind;Integrated Security=SSPI;"""> let db = Nwind.GetDataContext() // Create data frame from Products table (with appropriate column names) let fr = db.Products |> Frame.ofRecords

El resultado es:

ProductID ProductName SupplierID CategoryID QuantityPerUnit UnitPrice UnitsInStock UnitsOnOrder ReorderLevel Discontinued OrderDetails Categories Suppliers 0 -> 1 Chai 1 1 10 boxes x 20 bags 18.0000 39 0 10 False System.Data.Linq.EntitySet`1[OrderDetails] Categories Suppliers 1 -> 2 Chang 1 1 24 - 12 oz bottles 19.0000 17 40 25 False System.Data.Linq.EntitySet`1[OrderDetails] Categories Suppliers 2 -> 3 Aniseed Syrup 1 2 12 - 550 ml bottles 10.0000 13 70 25 False System.Data.Linq.EntitySet`1[OrderDetails] Categories Suppliers 3 -> 4 Chef Anton''s Cajun Seasoning 2 2 48 - 6 oz jars 22.0000 53 0 0 False System.Data.Linq.EntitySet`1[OrderDetails] Categories Suppliers 4 -> 5 Chef Anton''s Gumbo Mix 2 2 36 boxes 21.3500 0 0 0 True System.Data.Linq.EntitySet`1[OrderDetails] Categories Suppliers (....)