我来自Java背景,是Scala的新手.
我正在使用Scala和Spark.但是我无法理解我在哪里使用==和===.
任何人都可以告诉我在哪种情况下我需要使用这两个运算符,有什么区别==和===?
我正在尝试创建一个DataFrame使用RDD.
首先,我创建一个RDD使用下面的代码 -
val account = sc.parallelize(Seq(
(1, null, 2,"F"),
(2, 2, 4, "F"),
(3, 3, 6, "N"),
(4,null,8,"F")))
Run Code Online (Sandbox Code Playgroud)
它工作正常 -
account:org.apache.spark.rdd.RDD [(Int,Any,Int,String)] = ParallelCollectionRDD [0]并行化:27
但是,当尝试创建DataFrame从RDD使用下面的代码
account.toDF("ACCT_ID", "M_CD", "C_CD","IND")
Run Code Online (Sandbox Code Playgroud)
我收到了以下错误
java.lang.UnsupportedOperationException:不支持类型为Any的架构
我分析说,每当我把null值放进去的时候,Seq只有我得到了错误.
有没有办法添加空值?
我想在Hive中执行以下查询 -
select * from supp a inner join trd_acct b
on
(a.btch_id = 11170 AND a.btch_id = b.btch_id)
OR (a.btch_id = 11164 AND a.supp_id = b.supp_id)
Run Code Online (Sandbox Code Playgroud)
但是得到错误 -
FAILED:SemanticException [错误10019]:第3行:1或JOIN当前不支持'supp_id'
我想加入两个DataFrame条件.
我有两个数据帧A和B.
包含id,m_cd和c_cd列B包含m_cd,c_cd和记录列
条件是 -
我们可以在数据帧的()方法中使用" when"和" otherwise()" withcolumn,所以对于数据帧中的连接情况有没有办法做到这一点.
我已经使用Union.But想知道是否还有其他选项.
我正在使用HBase Version 1.2.0-cdh5.8.2和Spark version 1.6.0。
我正在使用打包toHBaseTable()方法it.nerdammer.spark.hbase保存RDD在Spark中HBASE。
val experiencesDataset = sc.parallelize(Seq((001, null.asInstanceOf[String]), (001,"2016-10-25")))
experiencesDataset .toHBaseTable(experienceTableName).save()
Run Code Online (Sandbox Code Playgroud)
但是我想保存HBase使用中Spark的数据Bulk Load。
我无法理解如何使用批量加载选项。请帮我
我正在使用scala,spark,IntelliJ和maven.
我使用下面的代码:
val joinCondition = when($"exp.fnal_expr_dt" >= $"exp.nonfnal_expr_dt",
$"exp.manr_cd"===$"score.MANR_CD")
val score = exprDF.as("exp").join(scoreDF.as("score"),joinCondition,"inner")
Run Code Online (Sandbox Code Playgroud)
和
val score= list.withColumn("scr", lit(0))
Run Code Online (Sandbox Code Playgroud)
但是当尝试使用maven构建时,低于错误 -
错误:未找到:值时
和
错误:未找到:值已点亮
对于$和===我用import sqlContext.implicits.StringToColumn它工作正常.在行家build.But的的时间没有出现错误lit(0)和when我需要进口或者还有什么其他的方式解决问题.
在我的项目中,我们使用Hadoop 2,Spark,Scala.Scala是编程语言,Spark在这里用于分析.我们使用Hive和HBase两者.我可以访问所有细节,如文件等HDFS使用Hive.但我的困惑是 -
Hive,那么为什么HBase需要存储数据.这不是开销吗?HIVE和HBase? 任何人都可以让我知道.
我想DataFrame在HDFS使用中保存为文本文件spark-shell.
scala> finalDataFrame.rdd.saveAsTextFile(targetFile)
Run Code Online (Sandbox Code Playgroud)
执行上面的代码后,我发现内部使用阶段做了一些工作.
[第13阶段:================================>(119 + 8)/ 200]
我试图了解这个过程的基本细节.但是不能这样做.我的问题是 -
[第18阶段:=============>(199 + 1)/ 200] [第27阶段:============>(173 + 3)/ 200 ]
我正在尝试比较下面的当前行和上一行的记录DataFrame。我要计算“金额”列。
scala> val dataset = sc.parallelize(Seq((1, 123, 50), (2, 456, 30), (3, 456, 70), (4, 789, 80))).toDF("SL_NO","ID","AMOUNT")
scala> dataset.show
+-----+---+------+
|SL_NO| ID|AMOUNT|
+-----+---+------+
| 1|123| 50|
| 2|456| 30|
| 3|456| 70|
| 4|789| 80|
+-----+---+------+
Run Code Online (Sandbox Code Playgroud)
计算逻辑:
其他行也需要遵循相同的逻辑。
预期产量:
+-----+---+------+
|SL_NO| ID|AMOUNT|
+-----+---+------+
| 1|123| 50|
| 2|456| 30|
| 3|456| 30|
| 4|789| 80|
+-----+---+------+
Run Code Online (Sandbox Code Playgroud)
请帮忙。
我正在使用RedHat Business Central并尝试从另一个 DMN 文件调用一个 DMN 文件。
用例 - 如果工资 > 40000 则从 firstdmn 计算税金,否则从secondarydmn计算税金。
我在Tax DMN 决策中添加了上下文和文字表达式,并包含了下面的模型。但不知道如何进一步进行。请建议该怎么做。
每当我尝试在eclipse中运行我的功能文件时使用Maven我收到以下错误:
线程"main"中的异常java.lang.IllegalArgumentException:不是文件或目录:G:\ Codebase\MavenCucumber - 在cucumber.runtime的cucumber.runtime.io.FileResourceIterator $ FileIterator.(FileResourceIterator.java:54)插件. io.FileResourceIterator.(FileResourceIterator.java:20)位于cucumber.runtime.mun上的cucumber.runtime.io.FileResourceIterable.iterator(FileResourceIterable.java:19),来自cucumber.runtime.model.CucumberFeature.load(CucumberFeature.java:38).在cucumber.api.cli.Mun.run(Main.java:20)的cucumber.runtime.Runtime.run(Runtime.java:92)运行的RuntimeOptions.cucumberFeatures(RuntimeOptions.java:117),来自cucumber.api.cli.Main .主要(Main.java:12)
上面的图片是我项目的结构,而功能文件包含以下代码 -
@tag
Feature: Proof of Concept
@tag1
Scenario: This is my first test Scenerio
Given This is my first step
When This is my second step
Then This is my third step
Run Code Online (Sandbox Code Playgroud)