问题标签 [apache-spark-1.6]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6712 浏览

apache-spark - 如何在 EMR 上使用 Spark 在 Hive Metastore 中注册 S3 Parquet 文件

我正在使用 Amazon Elastic Map Reduce 4.7.1、Hadoop 2.7.2、Hive 1.0.0 和 Spark 1.6.1。

用例:我有一个用于处理数据的 Spark 集群。该数据作为 Parquet 文件存储在 S3 中。我希望工具能够使用在 Hive Metastore 中注册的名称来查询数据(例如,查找foo表而不是parquet.`s3://bucket/key/prefix/foo/parquet`做事的风格)。我还希望这些数据在 Hive Metastore(一个单独的 RDS 实例)的生命周期内保持不变,即使我拆除了 EMR 集群并启动了一个连接到同一个 Metastore 的新集群。

问题:如果我这样做sqlContext.saveAsTable("foo"),默认情况下会在 Hive Metastore 中创建一个托管表(请参阅https://spark.apache.org/docs/latest/sql-programming-guide.html)。这些托管表将数据从 S3 复制到 EMR 集群上的 HDFS,这意味着在拆除 EMR 集群后元数据将毫无用处。

0 投票
1 回答
602 浏览

scala - 如何根据dataFram中的行数对列值执行动态分区

我正在尝试基于分区对输入文件进行分区,accountId但仅当 dataFrames 包含超过 1000 条记录时才完成此分区。accountId是一个无法知道的动态整数。考虑下面的代码

但是上面的代码将所有不需要的 accountId 分区。

  1. 我想找到数据框中每个的计数accountId
  2. 如果每个 accountId 的记录超过 1000,则将分区信息写入输出源。

例如,如果输入文件有 1500 条 accountId=1 的记录和 10 条 accountId=2 的记录,则根据 accountId=1 将过滤后的数据帧划分为输出源,并将 accountId=2 记录保留在内存中。

如何使用火花流实现这一目标?

0 投票
2 回答
5475 浏览

apache-spark - Spark CrossValidatorModel 访问 bestModel 以外的其他模型?

我正在使用 Spark 1.6.1:

目前我正在使用 CrossValidator 来使用各种参数训练我的 ML 管道。在训练过程之后,我可以使用 CrossValidatorModel 的 bestModel 属性来获得在交叉验证期间表现最好的模型。交叉验证的其他模型是否会自动丢弃,或者我可以选择性能比 bestModel 更差的模型吗?

我之所以问,是因为我使用 F1 分数指标进行交叉验证,但我也对所有模型的 weightedRecall 感兴趣,而不仅仅是在交叉验证期间表现最好的模型

0 投票
1 回答
305 浏览

apache-spark - 使用 Spark 1.6.2 与 Spark 2.0.0 的 KMeans

Kmeans()在我无法控制的环境中使用,我将在 <1 个月内放弃。火花 1.6.2。已安装。

我应该为在我离开之前敦促“他们”升级到 Spark 2.0.0 而付出代价吗?换句话说,Spark 2.0.0在Spark Mllib KMeans()方面是否引入了任何重大改进

就我而言,质量是比速度更重要的因素。

0 投票
0 回答
762 浏览

java - Apache Spark 自联接多列上的大数据集

我在hadoop集群上运行apache spark,使用yarn。我有一个大数据集,大约有 1.6 亿条记录。我必须执行自我加入。连接是在 1 列 (c1) 的完全匹配、日期重叠匹配和至少 2 列中的至少 1 列的匹配上完成的(比如说 c3 或 c4)。

我已经从 RDD 中的 HBase 读取数据并将该 RDD 转换为 DATASET,然后我进行了连接。所以我的问题是:

1)如果我在进行连接之前对 c1 上的 rdd 进行分区(这必须始终匹配)会有所帮助,这样 spark 只会加入分区而不是对周围的所有东西进行洗牌吗?

2)我也通过使用键来做到这一点,例如:c1+c3 和 c1+c4 然后通过键进行连接,但是我必须通过日期重叠过滤所有结果,我认为添加日期重叠联接将导致生成的记录更少。

3)有没有一种有效的方法来进行自我连接,我匹配确切的列值,但我也在其他列之间进行一些比较?

0 投票
0 回答
209 浏览

scala - Spark 数据集:使用 groupBy MissingRequirementError 时出现异常

我开始使用 Spark 数据集,当我在 Spark 1.6.1 中执行 groupby 时遇到此异常

这是例外

scala.reflect.internal.MissingRequirementError:找不到对象 $line19.$read。在 scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:16) 在 scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:17) 在 scala.reflect.internal.Mirrors$RootsBase.ensureModuleSymbol(Mirrors .scala:126) 在 scala.reflect.internal.Mirrors$RootsBase.staticModule(Mirrors.scala:161) 在 scala.reflect.internal.Mirrors$RootsBase.staticModule(Mirrors.scala:21) 在 $iwC$$iwC$ $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$typecreator2$1.apply(:32) at scala.reflect.api.TypeTags$WeakTypeTagImpl.tpe$lzycompute(TypeTags.scala:231) at scala .reflect.api.TypeTags$WeakTypeTagImpl.tpe(TypeTags.scala:231) at org.apache.spark.sql.SQLImplicits$$typecreator10$1.apply(SQLImplicits.scala:

任何人都可以帮忙吗?

0 投票
1 回答
237 浏览

java - 为什么在应用程序中使用 SQLContext 对 Hive 表执行 SQL 失败(但 spark-shell 中的相同查询工作正常)?

我正在使用 Spark 1.6

我正在尝试通过以下方式连接到我的 spark-sql java 代码中的表:

它给了我一个未找到异常的表。

但是当我使用 scala 在 spark-shell 中执行此操作时,它工作正常。表被访问,我也可以打印出数据。

关于这个问题的任何意见?

0 投票
1 回答
2407 浏览

apache-spark - Apache Spark:设置执行器实例

我使用参数在 YARN 上运行我的 Spark 应用程序:

在 spark-defaults.conf 中:

在纱线站点.xml 中:

所有其他参数都设置为默认值。

我有一个 6 节点集群,并且 Spark 客户端组件安装在每个节点上。每次我运行应用程序时,Spark UI 中只有 2 个执行程序和 1 个驱动程序可见。执行者出现在不同的节点上。

为什么 Spark 不能创建更多的执行者?为什么只有 2 而不是 6?

我发现了一个非常相似的问题:Apache Spark: setting executor instances doesn't change the executors,但增加 memoty-mb 参数对我的情况没有帮助。

0 投票
3 回答
10996 浏览

scala - 如何在 SPARK 数据框 v1.6 的左外连接中将 NULL 替换为 0

我正在使用 Spark v1.6。我有以下两个 DataFrame,我想在左外连接 ResultSet 中将 null 转换为 0。有什么建议么?

数据帧

左外连接

结果集

0 投票
2 回答
22711 浏览

apache-spark - 使用时间戳和日期类型将 CSV 读入 Spark Dataframe

这是带有 Spark 1.6的 CDH 。

我正在尝试将此假设 CSV 导入 apache Spark DataFrame:

我使用databricks-csv jar。

我使用 inferSchema 为生成的 DataFrame 创建架构。printSchema() 函数为我提供了上面代码的以下输出:

C3 列具有字符串类型。我希望 C3 具有日期类型。为了让它成为日期类型,我尝试了以下代码。

此代码和第一个块之间的唯一区别是dateFormat选项行(我使用"yyyy-MM-dd"而不是"yyyy-MM-dd HH:mm:ss")。现在我将 C3 和 C5 作为时间戳(C3 仍然不是日期)。但对于 C5,HH::mm:ss 部分被忽略并在数据中显示为零。

理想情况下,我希望 C3 的类型为日期,C5 的类型为时间戳,并且其 HH:mm:ss 部分不被忽略。我现在的解决方案看起来像这样。我通过从我的数据库中并行提取数据来制作 csv。我确保将所有日期作为时间戳(不理想)。所以,测试 csv 现在看起来像这样:

这是我的最终工作代码:

在这里,我在 dateFormat 中使用了完整的时间戳格式(“yyyy-MM-dd HH:mm:ss” )。我手动创建了 finalSchema 实例,其中 c3 是日期,C5 是时间戳类型(Spark sql 类型)。我使用 schema() 函数应用这些模式。输出如下所示:

是否有更简单或开箱即用的方法来解析 csv 文件(具有日期和时间戳类型的 spark 数据帧?

相关链接:
http ://spark.apache.org/docs/latest/sql-programming-guide.html#manually-specifying-options
https://github.com/databricks/spark-csv