小编Ram*_*ram的帖子

java.lang.StackOverflowError使用Kryo序列化彼此引用的对象时

我有一个类似图形的对象,我从服务器发送到包含nodes它的客户端adjacencyLists.

我有类似的东西:

Clearing c1 = new Clearing(1, 134, 151);
Clearing c6 = new Clearing(6, 250, 88);

c1.adjacentByPath.add(new Path(1, c6));
c6.adjacentByPath.add(new Path(1, c1));
Run Code Online (Sandbox Code Playgroud)

每次我发送包含这些清除的对象时,我收到以下错误:

Exception in thread "Server" java.lang.StackOverflowError
at com.esotericsoftware.kryo.Kryo.getRegistration(Kryo.java:448)
at com.esotericsoftware.kryo.util.DefaultClassResolver.writeClass(DefaultClassResolver.java:79)
    ......
Run Code Online (Sandbox Code Playgroud)

在Kryonet有解决方法吗?谢谢

java kryo kryonet apache-spark

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

Spark列出所有缓存的RDD名称

我是Apache Spark的新手,我创建了几个RDD和DataFrames,缓存它们,现在我想通过使用下面的命令来解决它们中的一些问题

rddName.unpersist()
Run Code Online (Sandbox Code Playgroud)

但我不记得他们的名字.我使用sc.getPersistentRDDs但输出不包括名称.我还使用浏览器查看缓存的rdds,但同样没有名称信息.我错过了什么吗?

java scala dataframe apache-spark rdd

6
推荐指数
2
解决办法
4061
查看次数

Scala:如何获取数据帧中的一系列行

我有一个DataFrame通过运行sqlContext.readParquet文件创建的.

DataFrame由300个M行.我需要使用这些行作为另一个函数的输入,但我想以较小的批量执行它以防止OOM错误.

目前,我正在使用df.head(1000000)读取前1M行,但我找不到一种方法来读取后续行.我试过df.collect(),但它给了我一个Java OOM错误.

我想迭代这个数据帧.我尝试使用withColumn()API添加另一个列来生成一组唯一值来迭代,但数据框中的所有现有列都没有唯一值.

例如,我尝试了val df = df1.withColumn("newColumn", df1("col") + 1),以及val df = df1.withColumn("newColumn",lit(i+=1))两者都没有返回一组连续的值.

获取数据帧的前n行然后接下来的n行的任何其他方法,其作用类似于范围函数SqlContext

scala dataframe apache-spark

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

如何将列添加到架构的开头?

Dataset.withColumn()似乎将列附加到架构的末尾.如何将列添加到架构的开头?

scala apache-spark apache-spark-sql

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

JDBC 到 Spark Dataframe - 如何确保均匀分区?

我是 Spark 的新手,正在通过 JDBC 从 Postgres 数据库表创建一个 DataFrame,使用spark.read.jdbc.

我对分区选项有些困惑,特别是partitionColumnlowerBoundupperBoundnumPartitions


  • 文档似乎表明这些字段是可选的。如果我不提供它们会怎样?
  • Spark 如何知道如何对查询进行分区?那会有多高效?
  • 如果我确实指定了这些选项,即使 partitionColumn 分布不均匀,我如何确保分区大小大致相同?

假设我将有 20 个执行程序,所以我将 numPartitions 设置为 20。
我的 partitionColumn 是一个自动递增的 ID 字段,假设值范围从 1 到 2,000,000
但是,因为用户选择处理一些非常旧的数据,连同一些真正的新数据,中间没有任何内容,大多数数据的 ID 值要么低于 100,000,要么超过 1,900,000。

  • 我的第 1 位和第 20 位执行者会得到大部分工作,而其他 18 位执行者则大部分时间都坐在那里闲置吗?

  • 如果是这样,有没有办法防止这种情况?

partitioning jdbc apache-spark apache-spark-sql

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

从 Spark 中的多个 S3 存储桶读取

我有一个在 Yarn 集群上运行的 spark 应用程序,它需要从 S3 兼容对象存储上的多个存储桶中读取文件,每个存储桶都有自己的一组凭据。

根据hadoop 文档,应该可以通过spark.hadoop.fs.s3a.bucket.<bucket-name>.access.key=<access-key>在活动中设置表单的配置来为多个存储桶指定凭据,SparkSession但这在实践中对我不起作用。

根据文档,我认为应该工作的一个例子:

import org.apache.spark.sql.{SaveMode, SparkSession}

case class BucketCredential(bucketName: String, accessKey: String, secretKey: String)

object TestMultiBucketReadWrite {

  val credentials: Seq[BucketCredential] = Seq(
    BucketCredential("bucket.1", "access.key.1", "secret.key.1"),
    BucketCredential("bucket.2", "access.key.2", "secret.key.2")

  )

  def addCredentials(sparkBuilder: SparkSession.Builder, credentials: Seq[BucketCredential]): SparkSession.Builder = {
    var sBuilder = sparkBuilder
    for (credential <- credentials) {
      sBuilder = sBuilder
        .config(s"spark.hadoop.fs.s3a.bucket.${credential.bucketName}.access.key", credential.accessKey)
        .config(s"spark.hadoop.fs.s3a.bucket.${credential.bucketName}.secret.key", credential.secretKey)
    }
    sBuilder
  }

  def main(args: Array[String]): Unit = {
    val spark = addCredentials(SparkSession.builder(), credentials) …
Run Code Online (Sandbox Code Playgroud)

hadoop scala amazon-s3 amazon-web-services apache-spark

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

Drools在Spark中用于流媒体文件

我们能够成功地将drools与spark集成在一起当我们尝试应用来自Drools的规则时,我们能够为批处理文件做到这一点,它存在于HDFS中,但我们尝试使用drools进行流式文件,以便我们可以立即做出决定,但我们无法弄清楚如何去做.Below是我们正在努力实现的代码片段.
案例1 : .

    SparkConf conf = new SparkConf().setAppName("sample");
    JavaSparkContext sc = new JavaSparkContext(conf);

    JavaRDD<String> javaRDD = sc.textFile("/user/root/spark/sample.dat");
    List<String> store = new ArrayList<String>();
    store = javaRDD.collect();
Run Code Online (Sandbox Code Playgroud)

案例2: 当我们使用流式上下文时

SparkConf sparkconf = new SparkConf().setAppName("sparkstreaming");
    JavaStreamingContext ssc = 
              new JavaStreamingContext(sparkconf, new Duration(1));

    JavaDStream<String> lines = ssc.socketTextStream("xx.xx.xx.xx", xxxx);
Run Code Online (Sandbox Code Playgroud)

在第一种情况下,我们可以在变量存储上应用我们的规则,但在第二种情况下,我们无法在线上应用规则dstream.

如果有人有一些想法,怎么做,将是一个很大的帮助.

java hadoop drools apache-spark spark-streaming

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

我们如何确定总数。蜂巢表的桶数

我对 hadoop 有点陌生。根据我的知识桶是固定的。hive 表中的分区数和 hive 使用 no。减速器的总数与总数相同。创建表时定义的桶数。那么谁能告诉我如何计算总数。蜂巢表中的桶数。有没有计算桶总数的公式?

hive buckets numbers formula

5
推荐指数
2
解决办法
2万
查看次数

XAMPP虚拟主机无法正常工作

在将此标记为已回答之前,请阅读整篇文章,因为是的,有很多这些问题但是没有任何答案可以使用.

在过去的6个月里,我在这里和网络上查看了大约50个不同的表单帖子,试图让我的XAMPP虚拟主机工作.

主机文件

127.0.0.1       localhost
127.0.0.1       vws.localhost
127.0.0.1       instancegaming.net
127.0.0.1       vws.instancegaming.net
Run Code Online (Sandbox Code Playgroud)

http-vhosts文件(已更新7/26)

 # Virtual Hosts
 #
 # Required modules: mod_log_config

 # If you want to maintain multiple domains/hostnames on your
 # machine you can setup VirtualHost containers for them. Most      configurations
 # use only name-based virtual hosts so the server doesn't need to worry    about
 # IP addresses. This is indicated by the asterisks in the directives below.
 #
 # Please see the documentation at
 # <URL:http://httpd.apache.org/docs/2.4/vhosts/>
 # for further …
Run Code Online (Sandbox Code Playgroud)

apache xampp virtual host google-chrome

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

Apache Drill查询HBase表

我使用drill-embedded来执行SQL,我可以在HBase中看到这些表.这是终端输出..

在此输入图像描述 但是,我无法对它们执行查询,这是引发以下错误:

 0: jdbc:drill:zk=local> SELECT * FROM students;


Error: SYSTEM ERROR: IllegalAccessError: tried to access method
com.google.common.base.Stopwatch.<init>()V from class
org.apache.hadoop.hbase.zookeeper.MetaTableLocator

[Error Id: 9c656263-c774-4aaf-a789-d4e374adb69b on localhost:31010]
(state=,code=0)
Run Code Online (Sandbox Code Playgroud)

请提前告知我要对Drill执行查询所要做的事情.

hadoop hbase apache-drill

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