标签: spark-shell

忽略非火花配置属性:hive.exec.dynamic.partition.mode

如何运行 Spark-shell hive.exec.dynamic.partition.mode=nonstrict

我尝试(如建议here

  export SPARK_MAJOR_VERSION=2; spark-shell  --conf "hive.exec.dynamic.partition.mode=nonstrict" --properties-file /opt/_myPath_/sparkShell.conf'
Run Code Online (Sandbox Code Playgroud)

但警告“忽略非火花配置属性:hive.exec.dynamic.partition.mode=nonstrict”


PS:使用 Spark 版本 2.2.0.2.6.4.0-91,Scala 版本 2.11.8

笔记

需求在错误后到达df.write.mode("overwrite").insertInto("db.partitionedTable")

org.apache.spark.SparkException:动态分区严格模式需要至少一个静态分区列。要关闭此设置 hive.exec.dynamic.partition.mode=nonstrict

apache-spark spark-shell

9
推荐指数
2
解决办法
9195
查看次数

Graphx:是否可以在不接收消息的情况下在每个顶点上执行程序?

当我尝试使用Scala在Graphx中实现一个算法时,我没有发现可以激活下一个解决方案中的所有顶点.如何向所有图形顶点发送消息?在我的算法中,有一些超级步骤应该由所有顶点执行(无论它们是否接收到消息,因为即使没有接收消息也是应该在下一次迭代中处理的事件).

我在这里给出了在pregel的逻辑中实现的SSSP算法的官方代码,你可以看到只有接收消息的顶点将在下一次迭代中执行它们的程序但是对于我的情况,我希望pregel函数迭代运行,即每个超级步骤顶点执行他们的程序,他们可以投票停止,如果需要!这个例子中的推理看起来并不像Pregel的纸质逻辑.请问有关如何实现Pregel真实逻辑的任何想法?

val graph: Graph[Long, Double] =
  GraphGenerators.logNormalGraph(sc, numVertices = 100).mapEdges(e => e.attr.toDouble)
val sourceId: VertexId = 42 // The ultimate source
// Initialize the graph such that all vertices except the root have distance infinity.
val initialGraph = graph.mapVertices((id, _) =>
    if (id == sourceId) 0.0 else Double.PositiveInfinity)
val sssp = initialGraph.pregel(Double.PositiveInfinity)(
  (id, dist, newDist) => math.min(dist, newDist), // Vertex Program
  triplet => {  // Send Message
    if (triplet.srcAttr + triplet.attr < triplet.dstAttr) {
      Iterator((triplet.dstId, triplet.srcAttr + triplet.attr))
    } …
Run Code Online (Sandbox Code Playgroud)

scala graph-theory apache-spark spark-graphx spark-shell

7
推荐指数
1
解决办法
310
查看次数

是否可以在不进入 Spark-Shell 的情况下运行 Spark Scala 脚本?

我知道运行基于 Scala 的 Spark 代码的唯一两种方法是将 Scala 程序编译成 jar 文件并使用 Spark-submit 运行它,或者在 Spark-Shell 中使用 :load 运行 Scala 脚本。我的问题是,可以直接在命令行上运行 Scala 文件,而无需先进入 Spark-shell 然后发出 :load?

scala apache-spark spark-shell

7
推荐指数
1
解决办法
3367
查看次数

不是一个Parquet文件。尾部的预期魔术数[80,65,82,49],但发现[110,111,13,10]

所以我试图加载推断自定义模式的csv文件,但是每次我遇到以下错误时:

不是一个Parquet文件。尾部的预期魔术数[80,65,82,49],但发现[110,111,13,10]

这就是我的程序和csv文件条目的样子,

年龄;工作;婚姻;教育;默认;平衡;住房;贷款;联系方式;天;月;任期;活动;周日;以前;结果; y 58;管理;已婚;三级;否; 2143;是;否;未知; 5; may; 261; 1; -1; 0;未知;否44;技术员;单身;中学;否; 29;是;否;未知; 5;可能; 151; 1; -1; 0;未知;否; 33;企业家;已婚;中学;否; 2;是;是;未知; 5;可能; 76; 1; -1; 0;未知;否

我的代码:

$ spark-shell --packages com.databricks:spark-csv_2.10:1.5.0

val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import org.apache.spark.sql.types._
import org.apache.spark.sql.SQLContext   
import sqlContext.implicits._    
import org.apache.spark.sql.types.{StructType, StructField, StringType, IntegerType}

val bankSchema = StructType(Array(
  StructField("age", IntegerType, true),
  StructField("job", StringType, true),
  StructField("marital", StringType, true),
  StructField("education", StringType, true),
  StructField("default", StringType, true),
  StructField("balance", IntegerType, true),
  StructField("housing", StringType, true),
  StructField("loan", StringType, true),
  StructField("contact", StringType, true), …
Run Code Online (Sandbox Code Playgroud)

mysql csv apache-spark parquet spark-shell

6
推荐指数
1
解决办法
6476
查看次数

Spark-shell - 如何避免抑制消除的堆栈跟踪(例外)

我正在尝试从 Spark-Shell 运行我的 scala 文件。该文件调用一些已经加载到spark-context中的其他jar文件

问题是如果出现故障,它只会打印堆栈跟踪的一部分。有什么方法可以启用整个堆栈跟踪吗?

myclassn: ClassifyFields : queryDb -> Problems extracting from DB
  at myclass.queryDb(ClassifyFields.java:231)
  at myclass.getColumnsWithKeys(ClassifyFields.java:258)
  ... 78 elided
Run Code Online (Sandbox Code Playgroud)

scala apache-spark spark-shell

6
推荐指数
1
解决办法
1161
查看次数

通过spark-shell以静默模式执行scala脚本

需要通过spark-shell以静默模式执行scala脚本。当我使用时spark-shell -i "file.scala",执行后,我进入了scala交互模式。我不想进入那里。

我尝试执行spark-shell -i“file.scala”。但我不知道如何在静默模式下执行脚本。

spark-shell -i "file.scala"
Run Code Online (Sandbox Code Playgroud)

执行后,我进入

scala>
Run Code Online (Sandbox Code Playgroud)

我不想进入该scala>模式

更新(2019 年 10 月)终止的脚本

这个问题也是关于运行一个终止的脚本,即一个由spark-shell -i script.scala > output.txt自己停止运行的“scala 脚本”(内部指令System.exit(0)终止脚本)。
请参阅这个问题并举一个很好的例子

它还需要一个“静音模式”希望不会污染环境output.txt

假设Spark v2.2+


PS:在很多情况下(通常是小工具和模块/算法测试)Spark 解释器可以比编译器更好......请,“让我们编译!” 这里没有答案。

scala apache-spark spark-shell

5
推荐指数
1
解决办法
3540
查看次数

如何确定在单个节点上运行的 Spark 的最佳设置?

我有 55 GB 数据需要处理。我在一台具有 32 个内核和 180GB RAM(无集群)的机器上运行 Spark-shell。由于它是一个单节点,Driver 和 Workers 驻留在同一个 JVM 进程中,默认情况下使用 514 MB。

我将 spark.driver.memory 设置为 170G

spark-shell  --driver-memory 170g
Run Code Online (Sandbox Code Playgroud)

我正在执行映射操作,然后是 group_by,然后是 agg 并写入镶木地板文件。它仍然停留在 在此处输入图片说明

无论如何,是否可以通过更改 spark.executor.memory 或更改使用的内核数而不是使用 Master[*] 来优化性能?如何确定给定任务和数据大小的最佳设置?我应该精确调整 --conf 文件中的哪些值?

简而言之,如何强制 Spark 以最佳方式使用所有可用资源?

scala apache-spark pyspark spark-shell

5
推荐指数
1
解决办法
256
查看次数

将字符串格式的科学记数法转换为火花数据帧中的数字

Day_Date,timeofday_desc,Timeofday_hour,Timeofday_minute,Timeofday_second,value
2017-12-18,12:21:02 AM,0,21,2,“1.779209040E+08”
2017-12-19,12:21:02 AM,0,21,2,“1.779209040E+08”
2017-12-20,12:30:52 AM,0,30,52,“1.779209040E+08”
2017-12-21,12:30:52 AM,0,30,52,“1.779209040E+08”
2017-12-22,12:47:10 AM,0,47,10,“1.779209040E+08”
2017-12-23,12:47:10 AM,0,47,10,“1.779209040E+08”
2017-12-24,02:46:59 AM,2,46,59,“1.779209040E+08”
2017-12-25,02:46:59 AM,2,46,59,“1.779209040E+08”
2017-12-26,03:10:27 AM,3,10,27,“1.779209040E+08”
2017-12-27,03:10:27 AM,3,10,27,“1.779209040E+08”
2017-12-28,03:52:08 AM,3,52,8,“1.779209040E+08”
Run Code Online (Sandbox Code Playgroud)

我正在尝试将value列转换为177920904

val df1 = df.withColumn("s", 'value.cast("Decimal(10,4)")).drop("value").withColumnRenamed("s", "value")
Run Code Online (Sandbox Code Playgroud)

还尝试将值转换为Float, Double。始终将 null 作为输出

df1.select("value").show()


+-----------+
|   value   |
+-----------+
|       null|
|       null|
|       null|
|       null|
|       null|
|       null|
|       null|
|       null|
Run Code Online (Sandbox Code Playgroud)
df.printSchema

root
 |-- Day_Date: string (nullable = true)
 |-- timeofday_desc: string (nullable = true)
 |-- Timeofday_hour: string (nullable …
Run Code Online (Sandbox Code Playgroud)

scala dataframe apache-spark apache-spark-sql spark-shell

4
推荐指数
1
解决办法
1万
查看次数

从 sbt 运行 Spark-Shell

获取 Spark shell 的默认方式似乎是从网站下载发行版。然而, 这个 Spark 问题提到它可以通过安装sbt。我找不到这方面的文档。spark-sql在使用and的 sbt 项目中spark-core,未spark-shell找到二进制文件。

你如何逃离spark-shellsbt?

scala sbt apache-spark spark-shell

4
推荐指数
1
解决办法
2122
查看次数

Spark shell:如何在里面复制多行?

我有一个要使用 Spark shell 执行的 Scala 程序,现在当我将粘贴复制到 spark shell 时它不起作用,我必须在里面逐行复制。

我应该如何复制shell中的所有程序?

谢谢。

scala apache-spark spark-shell

3
推荐指数
4
解决办法
6500
查看次数