symbolToColumn(`a) and stringToColumn($a) in SQLImplicts convert symbol to Column
TypedColumn: The expression is used to construct the data from the InternalRow, encoder is used from an InternalRow to construct the jvm object. Please refer to the Dataset.select
Dataset.select first uses the Column expression (with exprEnc) to project the InternalRow to the InternalRow only consisting of the required columns, and then use the TypedColumn encoder to deserialize to JVM object.