Apache Spark :org.apache.spark.sql.Dataset.drop(String... colNames) 方法用于 Java
Posted
技术标签:
【中文标题】Apache Spark :org.apache.spark.sql.Dataset.drop(String... colNames) 方法用于 Java【英文标题】:Apache Spark :org.apache.spark.sql.Dataset.drop(String... colNames) method for Java 【发布时间】:2018-04-25 05:30:33 【问题描述】:我有两个表,有两个公共列。 我正在使用这些列进行连接。 现在我想从其中一个表中删除常用列。 查了API,发现Spark里面有很多重载的方法。
其中一个是:org.apache.spark.sql.Dataset.drop(String... colNames)
但是我的问题是如何指定要从中删除列的表名。有什么办法吗?
我搜索并发现有一些别名的概念,但我不确定如何将其应用于此方法。
【问题讨论】:
【参考方案1】:我发现有几种方法:
1) 在加入前重命名列。
2) 在一个类型中删除一列
ex. `df1.drop(df2.col("ACCT_NBR"));`
通过上面的表达式,我们得到 DF 作为返回类型,我们可以再次调用 drop 函数多次。
这解决了我的问题。
【讨论】:
【参考方案2】:您需要创建表的Dataframe/Dataset,然后使用.drop()
Dataset<Row> sa = spark.read().option("multiLine", true).option("mode", "PERMISSIVE").json("file-path");
sa.drop("col-name");
【讨论】:
以上是关于Apache Spark :org.apache.spark.sql.Dataset.drop(String... colNames) 方法用于 Java的主要内容,如果未能解决你的问题,请参考以下文章
Driver stacktrace: at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGSchedul(
org.apache.spark.SparkException:任务不可序列化(由 org.apache.hadoop.conf.Configuration 引起)
Apache Spark :org.apache.spark.sql.Dataset.drop(String... colNames) 方法用于 Java
Spark 错误 - 值文本文件不是 org.apache.spark.sparkcontext 的成员