Interseção de matriz no Spark SQL
Eu tenho uma tabela com uma coluna de tipo de matriz chamadawriter
que tem valores comoarray[value1, value2]
, array[value2, value3]
.... etc.
estou fazendoself join
para obter resultados que tenham valores comuns entre matrizes. Eu tentei:
sqlContext.sql("SELECT R2.writer FROM table R1 JOIN table R2 ON R1.id != R2.id WHERE ARRAY_INTERSECTION(R1.writer, R2.writer)[0] is not null ")
E
sqlContext.sql("SELECT R2.writer FROM table R1 JOIN table R2 ON R1.id != R2.id WHERE ARRAY_INTERSECT(R1.writer, R2.writer)[0] is not null ")
Mas tem a mesma exceção:
Exceção no encadeamento "main" org.apache.spark.sql.AnalysisException: Função indefinida: 'ARRAY_INTERSECT'. Esta função não é uma função temporária registrada nem uma função permanente registrada no banco de dados 'padrão' .; linha 1 pos 80
Provavelmente o Spark SQL não suportaARRAY_INTERSECTION
eARRAY_INTERSECT
. Como posso alcançar meu objetivo emSpark SQL
?