我的图表中人与人之间有一些关系。
我的数据(在下面生成脚本)
create (s:Person {name: "SUE"})
create(d:Person {name: "DAVID"})
create(j:Person {name: "JACK"})
create(m:Person {name: "MARY"})
create(js:Person {name: "JASON"})
create(b:Person {name: "BOB"})
create(a1:Adress {id:1})
create(a2:Adress {id:2})
create(a3:Adress {id:3})
create(a4:Adress {id:4})
create(a5:Adress {id:5})
merge (d)-[:MOTHER]->(s)
merge(j)-[:MOTHER]->(s)
merge(js)-[:MOTHER]->(m)
merge(b)-[:MOTHER]->(m)
merge(b)-[:CURRENT_ADRESS]->(a1)
merge(js)-[:CURRENT_ADRESS]->(a2)
merge(j)-[:CURRENT_ADRESS]->(a3)
merge(s)-[:CURRENT_ADRESS]->(a4)
merge(d)-[:CURRENT_ADRESS]->(a5)
Run Code Online (Sandbox Code Playgroud)
我可以得到和她的孩子一起生活的母亲:
MATCH (p:Person)-[:CURRENT_ADRESS]->(a:Adress)<-[:CURRENT_ADRESS]-(t), (t)-[:MOTHER]->(p)
return p.name,t.name
p.name t.name
MARY JASON
Run Code Online (Sandbox Code Playgroud)
但我想得到不和她的任何孩子一起生活的母亲。
我怎样才能在 Cyper 中做到这一点?
我正在使用SQOOP将数据从HDFS加载到mySQL,在该数据中,一条记录具有70多个字段,这使得在RDBMS中创建表时很难定义架构。
有没有一种方法可以使用AVRO表使用SQOOP在RDBMS中通过架构动态创建表?
还是有一些相同的工具?
我试图将新值附加到现有键的Set(Values)上,但是它将替换现有值。
这是我的意见
val roads = Array(Array(0,1),Array(0,2),Array(1,2))
Run Code Online (Sandbox Code Playgroud)
预期产量:
Map(0 -> Set(1,2),1 -> Set(2))
Run Code Online (Sandbox Code Playgroud)
我的代码:
val roads = Array(Array(0,1),Array(0,2),Array(1,2))
var adjMatrix:Map[Int,Set[Int]] = Map()
for(i <- 0 until roads.size; j <- 1 until roads(i).size){
adjMatrix += (roads(i)(0) -> Set(roads(i)(j)))
}
Run Code Online (Sandbox Code Playgroud)
当我做的时候
adjMatrix.foreach(println)
Run Code Online (Sandbox Code Playgroud)
我得到以下结果,因为有两个键的名称为0,它替换了第0个索引处的(0,1)元素
(1,Set(2))
(0,Set(2))
Run Code Online (Sandbox Code Playgroud) 我已经浏览了很多 SO 帖子和 smtplib 文档,一切似乎都是正确的,但邮件仅发送给列表中的第一个收件人
注意:我使用的是Python3.7,我也尝试过Python 2.6,在下面的情况下,邮件仅发送给接收器中的第一个收件人
下面是我的代码:
import smtplib
from email.mime.text import MIMEText
sender='from@domain.com'
receiver=['email1@domain.com', 'email2@domain.com', 'email3@domain.com']
msg = MIMEText("message")
msg['Subject'] = "Test Email"
msg['From'] = sender
msg['To'] = ",".join(receiver)
server = smtplib.SMTP("smtp.domain", 25)
sever.sendmail(sender, receiver, msg.as_string())
server.quit()
Run Code Online (Sandbox Code Playgroud) 我使用 Spark 2.1.0.cloudera1。
我在流数据帧中有一个数组,数组中的数据如下所示:
["Windows","Ubuntu","Ubuntu","Mac","Mac","Windows","Windows"]
Run Code Online (Sandbox Code Playgroud)
我需要这个数组的大小,不包括元素“Windows”,即
以下是我遵循的方法
WITH os_count AS(
SELECT
cluster_id,
count(e) AS cnt
FROM systems
LATERAL VIEW EXPLODE(all_os) exploded as e
WHERE e <> 'Windows'
GROUP BY cluster_id)
SELECT
a.cluster_id,
a.memory,
a.storage,
c.cnt
FROM
systems a
JOIN
os_count c
ON(a.cluster_id = c.cluster_id)
Run Code Online (Sandbox Code Playgroud)
但是对于我的用例,我的查询中不能有 JOIN,因为 Spark 结构化流在 Spark 2.3 之前没有对 Join 的适当支持
我可以
SELECT SIZE(cluster.all_os) FROM systems
Run Code Online (Sandbox Code Playgroud)
这将返回 7,但我想用“Windows”过滤掉元素,而应该返回 4,不知道如何在不执行连接的情况下继续操作!
scala ×2
apache-spark ×1
avro ×1
cypher ×1
graph ×1
hadoop ×1
hive ×1
neo4j ×1
not-exists ×1
python ×1
python-3.7 ×1
receiver ×1
smtplib ×1
sql ×1
sqoop ×1