Как удалить данные с помощью SparkR?

С помощьюSparkR как "взорваться" вложенные массивы? Я пытался использоватьexplode вот так:

 dat <- nested_spark_df %>% 
     mutate(a=explode(metadata)) %>%
     head()

но хотя вышеприведенное не вызывает исключение, оно не продвигает вложенные поля вmetadata&nbsp;на верхний уровень. По сути, я ищу поведение, подобное поведению УльяLATERAL VIEW explode()&nbsp;функциональность, не полагаясь наHiveContext.

Обратите внимание, что во фрагменте кода я использую NSE, включенный черезSparkRext, Я думаю, что эквивалент прямойSparkR&nbsp;было бы что-то вроде... %>% mutate(a=explode(nested_spark_df$metadata)) ...&nbsp;Или что-то вдоль этих линий.

РЕДАКТИРОВАТЬ

Я пытался использоватьLATERAL VIEW explode(...)&nbsp;вSparkR::sql&nbsp;функция. Кажется, он отлично работает с данными Parquet и ORC. Однако при работе с вложенными данными Avro я попытался:

dat <- collect(sql(HiveContext,
                   paste0("SELECT a.id, ax.arrival_airport, x.arrival_runway ",
                          "FROM avrodb.flight a ",  
                             "LATERAL VIEW explode(a.metadata) a AS ax ",
                          "WHERE ax.arrival_airport='ATL'")))

Только чтобы получить следующую ошибку, правда, когда свопavrodb&nbsp;сparquetdb&nbsp;содержащий эквивалентные данные, он делает то, что я ожидаю.

Error in invokeJava(isStatic = TRUE, className, methodName, ...) :
  org.apache.spark.SparkException: Job aborted due to stage failure: Task 4 in stage 5.0 failed 4 times, most recent failure: Lost task 4.3 in stage 5.0 (TID 1345, dev-dn04.myorg.org): org.apache.avro.AvroTypeException: Found metadata, expecting union
    at org.apache.avro.io.ResolvingDecoder.doAction(ResolvingDecoder.java:292)
    at org.apache.avro.io.parsing.Parser.advance(Parser.java:88)
    at org.apache.avro.io.ResolvingDecoder.readIndex(ResolvingDecoder.java:267)
    at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:155)
    at org.apache.avro.generic.GenericDatumReader.readArray(GenericDatumReader.java:219)
    at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:153)
    at org.apache.avro.generic.GenericDatumReader.read(GenericDatumReader.java:155)
    at org.apache.avro.generic.GenericDatumReader.readField(GenericDatumReader.java:193)
    at org.apache.avro.generic.GenericDatumReader.readRecord(GenericDatumReader.java:183)
    at org.apache.avr
Calls: <Anonymous> ... collect -> collect -> .local -> callJStatic -> invokeJava

И это несмотря на то, что я включил пакет DataBricks Avro при запуске Spark. Чтение тех же данных с помощью искры с помощьюSQLContext&nbsp;(вместоHiveContext) отлично работает, за исключением того, что я не смог выяснить, как эффективно использоватьexplode()&nbsp;функция. Я также подтвердил, что это не проблема с самими данными, успешно запрашивая те же файлы через Hive, используя ту же инструкцию HQL, с которой я пытался работатьSparkR::sql(HiveContext, hql)