Skip to content

Commit

Permalink
defined logical data type
Browse files Browse the repository at this point in the history
  • Loading branch information
tonmcg committed Oct 27, 2018
1 parent 9871474 commit 52fd890
Showing 1 changed file with 11 additions and 8 deletions.
19 changes: 11 additions & 8 deletions M/Socrata.ReadData.pq
Expand Up @@ -151,15 +151,18 @@ Get ColumnName and Data Types
GetColumnDataTypes = (metaRecord as record) as table => GetColumnDataTypes = (metaRecord as record) as table =>
let let
columnsMetadata = metaRecord[columns], columnsMetadata = metaRecord[columns],
columnsMetadataFieldNames = Record.FieldNames(Record.Combine(columnsMetadata)), columnsMetadataFieldNames = Record.FieldNames(Record.Combine(metaRecord[columns])),
columnsMetadataTable = Table.FromList(columnsMetadata, Splitter.SplitByNothing(), null, null, ExtraValues.Error), columnsMetadataTable = Table.FromList(metaRecord[columns], Splitter.SplitByNothing(), null, null, ExtraValues.Error),
columnsMetadataExpanded = Table.ExpandRecordColumn(columnsMetadataTable, "Column1", {"fieldName", "dataTypeName"}), columnsMetadataExpanded = Table.ExpandRecordColumn(columnsMetadataTable, "Column1", {"fieldName", "dataTypeName"}),
hasPointType = List.Contains(columnsMetadataExpanded[dataTypeName], "point"),
pointColumn = if hasPointType then columnsMetadataExpanded[fieldName]{List.PositionOf(columnsMetadataExpanded[dataTypeName], "point")} else null,
FilteredcolumnsMetadataExpanded = Table.SelectRows(columnsMetadataExpanded, each not Text.StartsWith([fieldName], ":")), FilteredcolumnsMetadataExpanded = Table.SelectRows(columnsMetadataExpanded, each not Text.StartsWith([fieldName], ":")),
ReplacedDateTime = Table.ReplaceValue(FilteredcolumnsMetadataExpanded,"calendar_date","datetime",Replacer.ReplaceText,{"dataTypeName"}), ReplacedDateTime = Table.ReplaceValue(FilteredcolumnsMetadataExpanded,"calendar_date","datetime",Replacer.ReplaceText,{"dataTypeName"}),
ReplacedPoint = Table.ReplaceValue(ReplacedDateTime,"point","any",Replacer.ReplaceText,{"dataTypeName"}), ReplacedCheckbox = Table.ReplaceValue(ReplacedDateTime,"checkbox","logical",Replacer.ReplaceText,{"dataTypeName"}),
ReplacedPoint = Table.ReplaceValue(ReplacedCheckbox,"point","any",Replacer.ReplaceText,{"dataTypeName"}),
SetTypes = Table.TransformColumns(ReplacedPoint, {{"dataTypeName", each "type " & _, type text}}), SetTypes = Table.TransformColumns(ReplacedPoint, {{"dataTypeName", each "type " & _, type text}}),
RenamedFields = Table.RenameColumns(SetTypes,{{"fieldName", "Name"}, {"dataTypeName", "Type"}}), RenamedFields = Table.RenameColumns(SetTypes,{{"fieldName", "Name"}, {"dataTypeName", "Value"}}),
TextToType = Table.TransformColumns(RenamedFields,{{"Type", Expression.Evaluate}}) TextToType = Table.TransformColumns(RenamedFields,{{"Value", Expression.Evaluate}})
in in
TextToType, TextToType,


Expand Down Expand Up @@ -337,7 +340,7 @@ Errors
datasetMetadata = Record.AddField(Record.SelectFields(requestMetadata, {"name", "description", "createdAt", "rowsUpdatedAt", "columns"}), "rowCount", rowCount), datasetMetadata = Record.AddField(Record.SelectFields(requestMetadata, {"name", "description", "createdAt", "rowsUpdatedAt", "columns"}), "rowCount", rowCount),


// Get column names and data types // Get column names and data types
// columnFields = GetColumnDataTypes(datasetMetadata), columnFields = GetColumnDataTypes(datasetMetadata),
metaRecord = datasetMetadata, metaRecord = datasetMetadata,
columnsMetadataFieldNames = Record.FieldNames(Record.Combine(metaRecord[columns])), columnsMetadataFieldNames = Record.FieldNames(Record.Combine(metaRecord[columns])),
columnsMetadataTable = Table.FromList(metaRecord[columns], Splitter.SplitByNothing(), null, null, ExtraValues.Error), columnsMetadataTable = Table.FromList(metaRecord[columns], Splitter.SplitByNothing(), null, null, ExtraValues.Error),
Expand All @@ -346,11 +349,11 @@ Errors
pointColumn = if hasPointType then columnsMetadataExpanded[fieldName]{List.PositionOf(columnsMetadataExpanded[dataTypeName], "point")} else null, pointColumn = if hasPointType then columnsMetadataExpanded[fieldName]{List.PositionOf(columnsMetadataExpanded[dataTypeName], "point")} else null,
FilteredcolumnsMetadataExpanded = Table.SelectRows(columnsMetadataExpanded, each not Text.StartsWith([fieldName], ":")), FilteredcolumnsMetadataExpanded = Table.SelectRows(columnsMetadataExpanded, each not Text.StartsWith([fieldName], ":")),
ReplacedDateTime = Table.ReplaceValue(FilteredcolumnsMetadataExpanded,"calendar_date","datetime",Replacer.ReplaceText,{"dataTypeName"}), ReplacedDateTime = Table.ReplaceValue(FilteredcolumnsMetadataExpanded,"calendar_date","datetime",Replacer.ReplaceText,{"dataTypeName"}),
ReplacedPoint = Table.ReplaceValue(ReplacedDateTime,"point","any",Replacer.ReplaceText,{"dataTypeName"}) meta [point_type = hasPointType, point_column = pointColumn], ReplacedCheckbox = Table.ReplaceValue(ReplacedDateTime,"checkbox","logical",Replacer.ReplaceText,{"dataTypeName"}),
ReplacedPoint = Table.ReplaceValue(ReplacedCheckbox,"point","any",Replacer.ReplaceText,{"dataTypeName"}),
SetTypes = Table.TransformColumns(ReplacedPoint, {{"dataTypeName", each "type " & _, type text}}), SetTypes = Table.TransformColumns(ReplacedPoint, {{"dataTypeName", each "type " & _, type text}}),
RenamedFields = Table.RenameColumns(SetTypes,{{"fieldName", "Name"}, {"dataTypeName", "Value"}}), RenamedFields = Table.RenameColumns(SetTypes,{{"fieldName", "Name"}, {"dataTypeName", "Value"}}),
TextToType = Table.TransformColumns(RenamedFields,{{"Value", Expression.Evaluate}}), TextToType = Table.TransformColumns(RenamedFields,{{"Value", Expression.Evaluate}}),
columnFields = TextToType,


columnNames = columnFields[Name], columnNames = columnFields[Name],
columnTypes = CreateColumnTypes(columnFields), columnTypes = CreateColumnTypes(columnFields),
Expand Down

0 comments on commit 52fd890

Please sign in to comment.