Набор данных Spark 2.0 против DataFrame

начиная с spark 2.0.1 у меня возникли вопросы. Я прочитал много документации, но до сих пор не смог найти достаточных ответов:

В чем разница междуdf.select("foo")df.select($"foo")правильно ли я понимаю, чтоmyDataSet.map(foo.someVal) является безопасным и не преобразуется вRDD но оставайтесь в представлении DataSet / без дополнительных накладных расходов (с точки зрения производительности для 2.0.0)все остальные команды, например выберите, .. просто синтаксический сахар. Они не безопасны, и вместо них можно использовать карту. Как я могdf.select("foo") безопасный тип без оператора карты?почему я должен использовать UDF / UADF вместо карты (при условии, что карта остается в представлении набора данных)?

Ответы на вопрос(2)

Ваш ответ на вопрос