Apache Sparkを使用して、固定長の連続したサブシーケンスと文字列配列からの特定の最小サポートを見つける方法を教えてください。 例えばTGTGTGTGTGApache Sparkを使用して連続したサブシーケンスを頻繁に検索する
答えて
は、異なる長さのユニークサブ配列にそれを分割し、inital文字列を取ってみ長さL = 2場合は、文字列S = AATTGTGTGTGTGATTTTTTAATG考えると、最小サポートが5で、その後、頻繁に連続したサブシーケンスが
ですそれらの上にインアーialシーケンスをブロードキャストし、フィルタリングを一致させる。このような何かspark-shell
val s = "AATTGTGTGTGTGATTTTTTAATG" //your string
val s_broadcast = sc.broadcast(s) //broadcast version
val A = 2 // min length of substring
val B = 3 // max length of substring
val C = 3 // min support
val L = s.size //length of the string
sc.parallelize(
for{
i <- A to B
j <- 0 to (L - i)
} yield (j,i+j)
) // generating paris of substrings
.map{case(j,i)=>s_broadcast.value.substring(j,i)}
.distinct // if optimization is needed, this step is a place to start
.filter(x=>s_broadcast.value.indexOf(x*C)>=0)
.collect
.map(_*C)
で編集作業になりますよう しかし後には - ここで最長の部分文字列を返しますコードです。前のコードにはC
が固定されていますが、これは最も長く試行されます。
val s = "AATTGTGTGTGTGTGATTTTTTAATG" //your string
val s_broadcast = sc.broadcast(s) //broadcast version
val A = 2 // min length of substring
val B = 3 // max length of substring
val C = 3 // min support
val L = s.size //length of the string
sc.parallelize(
for{
i <- A to B
j <- 0 to (L - i)
} yield (j,i+j)
) // generating paris of substrings
.map{case(j,i)=>s_broadcast.value.substring(j,i)}
.distinct // if optimization is needed, this step is a place to start
.flatMap(x=>
for{
v <- C to L/A
} yield x->v
) //making "AB"->3 pairs, which will result in search for "ABABAB"
.filter{case(x,v)=>s_broadcast.value.indexOf(x*v)>=0}
.groupByKey //grouping same substrings of different length
.map{case(k,v)=>k->v.max} //getting longer substring
.collect //bringing substring to the driver
.map{case(k,v)=>k*v}
このコードの出力はArray(TT、GT、TG)であり、入力文字列s = AATTGTGTGTGTGATTTTTATATGの連続したサブシーケンスではありません。 – Abims
最後の行に '.map(_ * C)'を追加しました – avloss
大変感謝していますが、val s = sc.textFile( "file:/// tmp/input")を使ってローカルマシンから自分の入力を取得しようとしています。 txt ")とval s_broadcast = sc.broadcast(" file:///tmp/input.txt ")のブロードキャスト変数にエラーがあります。java.lang.StringIndexOutOfBoundsException:文字列インデックスが範囲外です。コード内のmap {case(j、i)=> s_broadcast.value.substring(j、i)}。私はエラーを修正するにあなたの助けを感謝します。 – Abims
- 1. MongoDB:非常に頻繁な用語を検索するときにスローテキスト検索
- 2. バイナリ検索を使用して最長増加するサブシーケンス
- 3. サブシーケンスとして検索する方法
- 4. 頻繁なインポート方法を使用してライブラリモジュールをインポートする
- 5. リスト内で最も頻繁に出現する単語を検索します(頻度なし)
- 6. LINQを使用して最も頻繁に値を選択
- 7. OpenGL ES 2.0:頻繁にbindbufferを使用したパフォーマンス低下
- 8. GoogleコンタクトAPIの連絡先に頻繁に連絡しました
- 9. Apache Spark RDD値検索
- 10. 連続して最も頻繁な値と2番目に頻繁な値を取得するにはどうすればよいですか?
- 11. 2つのループで連続するサブシーケンスの増加を検出
- 12. Kinect USB 3.0が頻繁に再接続し続ける
- 13. ボタンが連続して押された頻度を検出する方法は?
- 14. Indexing PDF - Apache SolrとApache Tikaを使用したファセット検索
- 15. 頻繁にイベント1309を取得し続ける
- 16. Solrファセット検索でstemedフィールドを使用して人間が読める最も頻繁に索引付けされた用語を表示
- 17. PPLを頻繁に使用しているコードをリファクタリングする方法。 C++
- 18. Apache Spark 1.6を使用したセカンダリソート
- 19. apache-sparkを使用したMergesort
- 20. Pythonを使用したApache Spark TFIDF
- 21. Mavenを使用したApache sparkエラー
- 22. キャッスルプロジェクトDynamicProxyはReflectionを頻繁に使用しますか?
- 23. javaを使用してoracleデータベースをapache sparkに接続する際のエラー
- 24. サブシーケンスが連続的に増加しています
- 25. 最も頻繁に使用されるペアを作成してカウントするoracle
- 26. Apache Phoenix Sparkプラグインを使用してSparkプラグインに接続し、カスタムSQLクエリを実行する
- 27. は、私は頻繁に使用してコマンドを実行するためにinputdialogを使用inputdialog
- 28. PHP/MYSQLを使用している共有サーバーで「接続タイムアウト」エラーが頻繁に発生する
- 29. Elastic/Kibanaを使用してログエントリの頻度のパターンを検索しますか?
- 30. Magentoバナーは頻繁に関連するプロモーションへのリンクを外します
「S」の最大長は何ですか? 'L'とMinimum Supportの最大値は何ですか? – axiom