【发布时间】:2017-09-07 20:26:49
【问题描述】:
我使用 spark 从 csv 文件创建了 parquet 结构:
Dataset<Row> df = park.read().format("com.databricks.spark.csv").option("inferSchema", "true")
.option("header", "true").load("sample.csv");
df.write().parquet("sample.parquet");
我正在阅读镶木地板结构,并且正在尝试转换数据集中的数据:
Dataset<org.apache.spark.sql.Row> df = spark.read().parquet("sample.parquet");
df.createOrReplaceTempView("tmpview");
Dataset<Row> namesDF = spark.sql("SELECT *, md5(station_id) as hashkey FROM tmpview");
不幸的是,我收到了数据类型不匹配错误。我必须明确指定数据类型吗?
17/04/12 09:21:52 INFO SparkSqlParser:解析命令:SELECT *, md5(station_id) as hashkey FROM tmpview 线程“main”中的异常 org.apache.spark.sql.AnalysisException:无法解析 'md5(tmpview.
station_id)' 由于数据类型不匹配:参数 1 需要二进制类型,但 'tmpview.station_id' 是 int 类型。; 第 1 行,第 10 行; '项目 [station_id#0, bikes_available#1, docks_available#2, time#3, md5(station_id#0) AS hashkey#16] +- 子查询别名 tmpview,tmpview+- 关系[station_id#0,bikes_available#1,docks_available#2,time#3] 实木复合地板
【问题讨论】:
标签: java apache-spark apache-spark-sql parquet apache-spark-dataset