我正在尝试转换我的 JSON 输入
col1 | col2
row1 [value1, value2]
row2 [value3, value2]
到
col1 | col2
row1 value1
row1 value2
row2 value3
row2 value2
显然 LATERAL VIEW
是要走的路,但我似乎做对了。
我一直在尝试以下方法:
df= sqlContext.sql(
"SELECT col1, col2" +
"FROM temptable LATERAL VIEW col2 AS col2"
);
(注意:变量sqlContext
实际上是一个HiveContext
。)
但这给了我 org.apache.spark.sql.AnalysisException: missing EOF at 'LATERAL' near 'temptable';
。文件结尾是什么意思?
我如何在 JAVA 中实现这一点?
最佳答案
您在查询中忘记了 col2 和 FROM 之间的空格。按照你写的方式,查询是 SELECT col1, col2FROM temptable LATERAL VIEW col2 AS col2
但你应该写
df= sqlContext.sql(
"SELECT col1, col2 FROM temptable LATERAL VIEW col2 AS col2"
);
关于java - 如何在 Java 中使用 SQL(可能使用 LATERAL VIEW)在 JSON 中使用 "expand"多值字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38785810/