我从这个问题得到以下代码:
def addChild(n: Node, newChild: Node) = n match {
case Elem(prefix, label, attribs, scope, child @ _*) => Elem(prefix, label, attribs, scope, child ++ newChild : _*)
case _ => error("Can only add children to elements!")
}
Run Code Online (Sandbox Code Playgroud)
除此之外,其中的所有内容都非常清晰: child ++ newChild : _*
它有什么作用?
我明白有Seq[Node]与另一个连接Node,然后呢?怎么: _*办?
我知道du -sh常见的Linux文件系统.但是如何用HDFS做到这一点?
你好同胞Scala程序员
我已经和Scala合作了一个月,但是我对一些基本的东西有问题,我希望你能帮助我.
case class PersonClass(name: String, age: Int)
object CaseTester {
def main(args:Array[String])
{
val string = "hej"
string match {
case e:String => println(string)
case PersonClass => println(string)
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到错误:
pattern type is incompatible with expected type;
found : object PersonClass
required: java.lang.String
case PersonClass => println(string)
Run Code Online (Sandbox Code Playgroud)
如果我然后将模式匹配中的第二行更改为以下内容:
case e:PersonClass => println(string)
Run Code Online (Sandbox Code Playgroud)
然后我得到错误:
error: scrutinee is incompatible with pattern type;
found : PersonClass
required: java.lang.String
case e:PersonClass => println(string)
Run Code Online (Sandbox Code Playgroud)
但是,如果我将字符串定义更改为以下内容,则在两种情况下都可以正常编译.
val string:AnyRef = "hej"
Run Code Online (Sandbox Code Playgroud) 后show命令火花打印如下:
+-----------------------+---------------------------+
|NameColumn |NumberColumn |
+-----------------------+---------------------------+
|name |4.3E-5 |
+-----------------------+---------------------------+
Run Code Online (Sandbox Code Playgroud)
有没有办法将NumberColumn格式改为类似的东西0.000043?
假设我有一个大约21亿条记录的数据集.
这是一个包含客户信息的数据集,我想知道他们做了多少次.所以我应该对ID进行分组并对一列进行求和(它有0和1值,其中1表示动作).
现在,我可以用一个简单的groupBy与agg(sum)它,但我的理解这是不是真的有效.这groupBy将在分区之间移动大量数据.
或者,我也可以使用带有partitionBy子句的Window函数,然后对数据求和.其中一个缺点是我必须应用额外的过滤器,因为它会保留所有数据.我想要每个ID一个记录.
但我没有看到这个窗口如何处理数据.它比这个组还要好吗和总和.还是一样吗?
我目前有一个应用程序,它应该连接到不同类型的数据库,使用 Spark 的 JDBC 选项在该数据库上运行特定查询,然后将生成的 DataFrame 写入 HDFS。
Oracle 的性能非常糟糕(没有检查所有这些)。原来这是因为fetchSizeOracle 的默认属性是 10 行。所以我将它增加到 1000,性能提升非常明显。然后,我将其更改为 10000,但随后一些表开始因执行程序中的内存不足问题而失败(6 个执行程序,每个 4G 内存,2G 驱动程序内存)。
我的问题是:
Spark 的 JDBC 获取的数据是否在每次运行时都保存在执行程序内存中?有什么办法可以在作业运行时取消持久化吗?
我可以从哪里获得有关该fetchSize物业的更多信息?我猜它不会被所有 JDBC 驱动程序支持。
是否还有其他与 JDBC 相关的事情需要注意以避免 OOM 错误?
假设我用来partitionBy将一些数据保存到磁盘,例如按日期,所以我的数据如下所示:
/mydata/d=01-01-2018/part-00000
/mydata/d=01-01-2018/part-00001
...
/mydata/d=02-01-2018/part-00000
/mydata/d=02-01-2018/part-00001
...
Run Code Online (Sandbox Code Playgroud)
当我使用 Hive config 读取数据时DataFrame,所以
val df = sparkSession.sql(s"select * from $database.$tableName")
Run Code Online (Sandbox Code Playgroud)
我可以知道:
d将下推d(例如GROUP BY d)分区,则不会发生随机播放但是,假设我不知道分区键是什么(某些上游作业写入数据,并且没有约定)。在本例中,如何让 Spark 告诉我哪个是分区键d。同样,如果我们有多个分区(例如按月、周、日)。
目前我们拥有的最好的代码确实很丑陋:
def getPartitionColumnsForHiveTable(databaseTableName: String)(implicit sparkSession: SparkSession): Set[String] = {
val cols = sparkSession.
sql(s"desc $databaseTableName")
.select("col_name")
.collect
.map(_.getAs[String](0))
.dropWhile(r => !r.matches("# col_name"))
if (cols.isEmpty) {
Set()
} else {
cols.tail.toSet
}
}
Run Code Online (Sandbox Code Playgroud) 我spark 2.1.1和他有一个奇怪的问题json4s.jackson.
我升级了我的流媒体项目spark 1.5.1.现在当我在IDE中执行代码时,一切正常.
但之后assembly和代码独立执行spark-submit
我收到以下错误
Caused by: org.json4s.package$MappingException: Parsed JSON values do not match with class constructor
args=
arg types=
constructor=
Run Code Online (Sandbox Code Playgroud)
我的Environemnt:
- 火花= 2.1.1
- 阶= 2.11,
- json4s杰克逊= 3.2.11
以前有人遇到过同样的问题吗?如果是的话,你是怎么解决的?
非常感谢.
我看到,与 spring-data-rest 存储库一起使用时,一组实体上的注释@RestResource(exported=false)不会导出该组,而是嵌入该组实体而不是渲染 url。
这是预期的行为吗?
exported=false至少可以说,这个属性不是具有误导性吗?该注释的确切语义是什么?
我将 spring-data-rest 与 neo4j 一起使用,即我的项目依赖于 spring-data-neo4j。
我可以使用以下命令将 json 文件读入 Pyspark 中的数据帧
spark = SparkSession.builder.appName('GetDetails').getOrCreate()
df = spark.read.json("path to json file")
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将 bz2(压缩的 csv)读入数据帧时,它给了我一个错误。我在用:
spark = SparkSession.builder.appName('GetDetails').getOrCreate()
df = spark.read.load("path to bz2 file")
Run Code Online (Sandbox Code Playgroud)
你能帮我纠正一下吗?
apache-spark ×6
scala ×4
pyspark ×2
python ×2
case-class ×1
command-line ×1
directory ×1
hadoop ×1
hdfs ×1
hive ×1
jackson ×1
jdbc ×1
json ×1
json4s ×1
neo4j ×1
spring ×1
spring-boot ×1
spring-data ×1
types ×1