A table column schema object, as can be created by
necessary when using the
col_schema_match() validation function (which
checks whether the table object under study matches a known column schema).
col_schema object can be made by carefully supplying the column names
and their types as a set of named arguments, or, we could provide a table
object, which could be of the
tbl_spark varieties. There's an additional option, which is just for
validating the schema of a
tbl_spark object: we can validate
the schema based on R column types (e.g.,
SQL column types (e.g.,
"varchar", etc.), or Spark SQL column
"StringType", etc.). This is great if we want to
validate table column schemas both on the server side and when tabular data
is collected and loaded into R.
col_schema(..., .tbl = NULL, .db_col_types = c("r", "sql"))
A set of named arguments where the names refer to column names and the values are one or more column types.
An option to use a table object to define the schema. If this is
provided then any values provided to
Determines whether the column types refer to R column
# Create a simple table with two # columns: one `integer` and the # other `character` tbl <- dplyr::tibble( a = 1:5, b = letters[1:5] ) # Create a column schema object # that describes the columns and # their types (in the expected # order) schema_obj <- col_schema( a = "integer", b = "character" ) # Validate that the schema object # `schema_obj` exactly defines # the column names and column types # of the `tbl` table agent <- create_agent(tbl = tbl) %>% col_schema_match(schema_obj) %>% interrogate() # Determine if these three validation # steps passed by using `all_passed()` all_passed(agent)#>  TRUE# We can alternatively create # a column schema object from a # `tbl_df` object schema_obj <- col_schema( .tbl = dplyr::tibble( a = integer(0), b = character(0) ) ) # This should provide the same # interrogation results as in the # previous example create_agent(tbl = tbl) %>% col_schema_match(schema_obj) %>% interrogate() %>% all_passed()#>  TRUE