问题标签 [apache-spark-sql]
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.
apache-spark - 将 SQL 和权重与 spark ML LogisticRegressionModel 一起使用
我正在试验 spark.ml 库和管道功能。使用带有拆分的 SQL 似乎有一个限制(例如,用于训练和测试):
- spark.ml 在模式 rdd 上工作很好,但是没有简单的方法可以在测试和训练集中随机拆分模式 rdd。我可以使用 randomSplit(0.6,0.4) 但这会返回一个丢失模式的 RDD 数组。我可以在其上强制一个案例类并将其转换回模式 RDD,但我有很多功能。我使用了过滤器并使用了一些基于我的 iid 功能的基本分区条件)。还有什么可以做的建议吗?
关于生成的模型:
- 如何访问模型权重?lr 优化器和 lr 模型内部具有权重,但不清楚如何使用它们。
hadoop - 执行选择查询时,HiveContext.sql() 将如何工作?
环境:
spark-1.2.0-bin-hadoop2.4
大家好,
最近我得到一个查询,它在同一张表上加入
a_huge_table
是一个非常大的并且column_for_join
没有索引(我不是 DBA,我无能为力 - 他们拒绝)
此查询在 Hive CLI 中需要 3~5 分钟(2 个阶段,总共 <200 个映射),但是在使用时HiveContext.sql()
,事情以非常糟糕的方式崩溃 -> 4 个阶段,30 分钟/阶段。
使用spark.sql.codegen
将阶段数减少到2,但每个阶段的时间成本不会减少。由于这个表只会被使用一次,我认为 HiveContext.CacheTable() 不会有太大帮助。我猜火花中使用的方法与蜂巢有些不同。
我尝试挖掘火花源,发现很难理解:HiveContext.sql(SqlText)
return SchemaRDD(HiveContext, LogicalPlan_Created_by_Parser_using_SqlText )
,我看到 LogicalPlan 用于 trait SchemaRDDLike
=> sqlContext.executePlan
=> executedPlan.execute()
=>SparkPlan.execute()
但我找不到SparkPlan.execute()
任何覆盖版本称为SELECT
. 然后我就卡住了。我仍然不明白 spark 如何从 hive 中获取数据。
那么 Spark SQL 是如何工作的呢?我想知道是否有任何文档可以阅读以更好地理解 Spark SQL?
顺便说一句,HiveContext().sql():SchemaRDD
没有了,master 分支的版本现在是HiveContext().sql():DataFrame
. 他们改变事物的速度如此之快。
scala - 从 scala 2.10.4 到 2.11 的火花
我需要使用超过 22 列宽的表来处理 SparkSQL。
似乎 Scala 2.11 解决了这个问题。
有关如何升级和可能跨版本工作的任何帮助?我在 Eclipse 中使用 Scala IDE,但由于 SchemaRDD 的问题,我可以迁移到 Intellij IDEA。
任何帮助表示赞赏。
join - Apache Spark SQL 问题:java.lang.RuntimeException:[1.517] 失败:预期标识符
根据我对spark sql的调查,知道不能直接连接超过2个表,我们必须使用子查询才能使其工作。所以我正在使用子查询并能够加入 3 个表:
使用以下查询:
"选择姓名、年龄、性别、dpi.msisdn、subscriptionType、maritalStatus、isHighARPU、ipAddress、startTime、endTime、isRoaming、dpi.totalCount、dpi.website FROM (SELECT subsc.name、subsc.age、subsc.gender、subsc. msisdn、subsc.subscriptionType、subsc.maritalStatus、subsc.isHighARPU、cdr.ipAddress、cdr.startTime、cdr.endTime、cdr.isRoaming FROM SUBSCRIBER_META subsc、CDR_FACT cdr WHERE subsc.msisdn = cdr.msisdn AND cdr.isRoaming = 'Y ') temp, DPI_FACT dpi WHERE temp.msisdn = dpi.msisdn";
但是当在相同的模式下,我试图加入 4 个表,它抛出了我下面的异常
java.lang.RuntimeException:[1.517] 失败:需要标识符
查询加入 4 个表:
SELECT name, dueAmount FROM (SELECT name, age, gender, dpi.msisdn, subscriptionType, maritalStatus, isHighARPU, ipAddress, startTime, endTime, isRoaming, dpi.totalCount, dpi.website FROM (SELECT subsc.name, subsc.age, subsc .gender, subsc.msisdn, subsc.subscriptionType, subsc.maritalStatus, subsc.isHighARPU, cdr.ipAddress, cdr.startTime, cdr.endTime, cdr.isRoaming FROM SUBSCRIBER_META subsc, CDR_FACT cdr where subsc.msisdn = cdr.msisdn AND cdr .isRoaming = 'Y') temp, DPI_FACT dpi WHERE temp.msisdn = dpi.msisdn) inner, BILLING_META billing where inner.msisdn = billing.msisdn
谁能帮我完成这个查询?
提前致谢。错误如下:
java - Cassandra-spark-connector 会接受来自 cassandra 表的时间戳数据类型吗?
我正在使用 spark-cassandra-connector 通过 cassandra 表中的 spark 执行一些分析。一切正常,直到我将我的一个文本文件更改为时间戳字段。一旦我完成它给我一个错误
我的代码如下,
我的代码有问题吗?
python - 定义具有大量列的字典
我有一个要移动到 spark sql 的数据集。这个数据集有大约 200 列。我发现这样做的最佳方法是将数据映射到字典,然后将该字典移动到 spark sql 表。
问题是,如果我将它移到字典中,代码将非常笨拙且不健壮。我可能不得不写这样的东西:
我只写了 13 列,因为我不想输入更多内容,但你明白了。
我想做一些类似于如何将 csv 读入 R 中的数据框的操作,在其中将列名指定为变量,然后使用该变量命名所有列。
例子:
我不能使用 pandas 数据框,因为该数据结构目前无法在 spark 中使用。
有没有一种方法可以在 python 中创建字典,类似于在 R 中创建数据框的方式?
apache-spark - 如何在 spark sql 注册函数中使用 spark SqlContext 对象?
我是 Spark SQL 的新手。在 Spark Sql Query 中没有 Concat 函数,为此我们注册了一个 sql 函数,在这个函数中我需要访问另一个表。为此,我们在 SQLContext 对象上编写了 spark sql 查询。当我调用此查询时,我得到 NullpointerException。请您帮忙解决这个问题。
提前致谢
//这是我的代码
def dropHeader(数据:RDD[String]):RDD[String] = {
}
scala - 在 Spark Streaming 上使用 DStream.transform() 中的 SQL?
有一些使用 SQL over Spark Streaming 的示例foreachRDD()
。但是,如果我想在中使用 SQL tranform()
:
我收到这样的错误:
[错误] /Users/raochenlin/Downloads/spark-1.2.0-bin-hadoop2.4/logstash/src/main/scala/LogStash.scala:52:方法转换没有类型参数:(transformFunc:org.apache。 spark.rdd.RDD[String] => org.apache.spark.rdd.RDD[U])(隐含证据$5: scala.reflect.ClassTag[U])org.apache.spark.streaming.dstream.DStream[U ] 存在以便它可以应用于参数 (org.apache.spark.rdd.RDD[String] => org.apache.spark.rdd.RDD[_ >: LogStash.AlertMsg with String <: java.io.Serializable ]) [error] --- 因为 --- [error] 参数表达式的类型与形参类型不兼容;[错误] 发现:org.apache.spark.rdd.RDD[String] => org.apache.spark.rdd.RDD[_ >: LogStash.AlertMsg with String <: java.io.Serializable] [error] required: org.apache.spark.rdd.RDD[String] => org.apache.spark.rdd.
似乎只有我使用sqlreport.map(r => r.toString)
才能正确使用?
apache-spark - 在 Spark SQL DSL 中计算字符串长度
编辑:这是一个关于 Spark 1.2 的老问题
为了 orderBy 的目的,我一直在尝试动态计算 SchemaRDD 中字符串列的长度。我正在学习 Spark SQL,所以我的问题完全是关于使用 DSL 或 Spark SQL 公开的 SQL 接口,或者了解它们的局限性。
例如,我的第一次尝试是使用集成的关系查询
编译没有运气:
(这让我想知道在哪里可以找到这个 DSL 实际可以解析的“表达式”。例如,它解析“+”来添加列。)
然后我尝试了
这失败了
(然后我重读这个(我正在运行 1.2.0) http://spark.apache.org/docs/1.2.0/sql-programming-guide.html#supported-hive-features 并想知道 Spark SQL 有什么意义支持列出的配置单元功能。)
问题:在表达式和/或 SQL 语句中真的支持长度运算符吗?如果是,语法是什么?(奖励:是否有关于 Spark SQL 表达式中解决了什么问题的特定文档,以及一般的语法是什么?)
谢谢!
apache-spark - Spark 应用程序如何工作?
我正在尝试实现一个简单的 Spark SQL 应用程序,它将查询作为输入并处理数据。但是因为我需要缓存数据并且我必须维护一个 SQL Context 对象。我无法理解如何使用相同的 SQL 上下文并不断从用户那里获取查询。
那么应用程序是如何工作的呢?当应用程序提交到集群时,它是继续在集群上运行还是执行特定任务并在任务完成后立即关闭?